MySQL<資料庫的進階操作>

來源:互聯網
上載者:User

標籤:串連數   cas   root使用者   root   不同的   啟動mysql   常用   增刪改   tca   

資料庫的進階操作

  MySQL提供了一個mysqldump命令,它可以實現資料的備份

資料的備份

  1、備份單個資料庫

    mysqldump -uusername -ppassword dbname [tbname1 [tbname2…]]>filename.sql

 

  2、備份多個資料庫

    mysqldump –uusername –ppassword -–database dbname1 [dbname2 dbname3…]

    >filename.sql

  3、備份所有資料庫

    mysqldump –uusername –ppassword -–all-databases>filename.sql

資料的還原

  資料庫中的資料遭到破壞時,可以通過備份好的資料檔案對資料進行還原,這裡所說的還原是指還原資料庫中的資料,而庫是不能被還原的。  

  mysql –uusername –ppassword [dbname] <filename.sql

  1、首先需要使用DROP語句將資料庫chapter08刪除

    DROP DATABASE chapter08;

  2、由於庫是不能被還原的,因此先要建立一個資料庫chapter08

    CREATE DATABASE chapter08;

  3、使用mysql語句還原C:/backup目錄下的chapter08_20140305.sql檔案

    mysql -uroot -pitcast chapter08 <C:/backup/chapter08_20140305.sql

  4、為了驗證資料已經還原成功,可以使用SELECT語句查詢chapter08中的資料SELECT * FROM student;

使用者管理 user表

  user表是最重要的一個許可權表,它記錄了允許串連到伺服器的帳號資訊以及一些全域級的許可權資訊。

  user表中有42個欄位,大致可分為4類使用者列、許可權列、安全列、資源控制列

建立普通使用者

  1、使用GRANT語句建立使用者,是建立使用者最常用的方法

    GRANT privileges ON database.table

        TO ‘username‘@‘hostname‘ [IDENTIFIED BY [PASSWORD]‘password‘]

        [,‘username‘@‘hostname [IDENTIFIED BY [PASSWORD]‘password‘]] …

  2、使用CREATE USER語句建立使用者

    CREATE USER ‘username‘@‘hostname‘[IDENTIFIED BY [PASSWORD]‘password‘]

        [,‘username‘@‘hostname‘[IDENTIFIED BY [PASSWORD]‘password‘]]…

 

  3、使用INSERT語句建立使用者

    INSERT INTO mysql.user(Host,User,Password,ssl_cipher、x509_issuer、x509_subject)

    VALUES(‘hostname‘,‘username‘,PASSWORD(‘password‘),‘‘,‘‘,‘‘);

刪除普通使用者

  1、使用DROP USER語句刪除使用者

    DROP USER ‘username‘@‘hostname‘[,‘username‘@‘hostname‘];

  2、使用DELETE語句刪除使用者

    DELETE FROM mysql.user WHERE Host=‘hostname‘ AND User=‘username‘;

修改使用者密碼

  root使用者修改root使用者密碼

  1、使用mysqladmin命令修改

    mysqladmin –u username [–h hostname] –p password new_password

 

  2、使用UPDATE語句修改

    UPDATE mysql.user set Password=PASSWORD(‘new_password‘)

    WHERE User=‘username‘ and Host=‘hostname‘;

 

  3、使用SET語句修改

    SET PASSWORD=PASSWORD(‘new_password‘);

 

  root使用者修改普通使用者密碼

  1、使用GRANT USAGE語句修改

    GRANT USAGE ON *.* TO ‘username‘@‘localhost‘ IDENTIFIED BY [PASSWORD]‘new_password‘;

 

  2、使用UPDATE語句修改

    UPDATE mysql.user set Password=PASSWORD(‘new_password‘) WHERE User=‘username‘ and Host=‘hostname‘;

 

  3、使用SET語句修改

    SET PASSWORD=PASSWORD(‘new_password‘);

 

  普通使用者修改密碼

    SET PASSWORD=PASSWORD(‘new_password‘);

如何解決root使用者密碼丟失問題

  停止MySQL服務

    net stop mysql

  使用--skip-grant-tables啟動MySQL服務

    mysql --skip-qrant-tables

  登入MySQL伺服器

      重新開啟一個運行對話方塊,在運行對話方塊中登入MySQL伺服器,具體命令如下:

    mysql -u root

  使用UPDATE語句設定root使用者密碼

    UPDATE mysql.user SET Password=PASSWORD(‘itcast‘) WHERE User=‘root‘ AND Host=‘localhost‘;

  載入許可權表

    FLUSH PRIVILEGES;

       上述步驟執行完,可以使用EXIT或\q命令退出伺服器,然後使用新密碼重新登入。至此,便完成了root使用者的密碼設定。

 

許可權管理 MySQL的許可權

  MySQL中的許可權資訊被儲存在mysql資料庫的user、db、host、tables_priv、column_priv和procs_priv表中,當MySQL啟動時會自動載入這些許可權資訊,並將這些許可權資訊讀取到記憶體中。

授予許可權

  我們之所以可以對資料進行增刪改查的操作,是因為資料庫中的使用者擁有不同的許可權,合理的授權可以保證資料庫的安全。

  GRANT privileges [(columns)][,privileges[(columns)]] ON database.table

    TO ‘username‘@‘hostname‘ [IDENTIFIED BY [PASSWORD]‘password‘]

    [,‘username‘@‘hostname‘ [IDENTIFIED BY [PASSWORD]‘password‘]] …

    [WITH with_option [with_option]…]

 

  privileges:表示權限類別型。

  columns:參數表示許可權作用於某一列,該參數可以省略不寫,此時許可權作用於整個表,username:表示使用者名稱。

  hostname表示主機名稱。

  IDENTIFIED BY:參數為使用者佈建密碼。

  PASSWORD參數為關鍵字.

  password為使用者的新密碼。WITH關鍵字後面可以帶有多個參數with_option,這個參數有五個取值。

 

  GRANT OPTION:將自己的許可權授予其他使用者MAX_QUERIES_PER_HOUR count:設定每小時最多可以執行多少次(count)查詢。

  MAX_UPDATES_PER_HOUR count:設定每小時最多可以執行多少次更新。

  MAX_CONNECTIONS_PER_HOUR count:設定每小時最大的串連數量。

  lMAX_USER_CONNECTIONS:設定每個使用者最多可以同時建立串連的數量。

查看許可權

  SHOW GRANTS FOR ‘username‘@‘hostname‘;

收回許可權

  為了保證資料庫的安全性,需要將使用者不必要的許可權收回

  1、收回使用者指定許可權

    REVOKE privileges [columns][,privileges[(columns)]] ON database.table

    FROM ‘username‘@‘hostname‘[,‘username‘@‘hostname‘] …

  2、收回使用者全部許可權

    REVOKE ALL PRIVILEGES,GRANT OPTION

    FROM  ‘username‘@‘hostname‘ [,‘username‘@‘hostname‘] …

MySQL<資料庫的進階操作>

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.