MySQL數據庫的用戶管理、數據庫備份與恢復

MySQL 是一個真正的多線程、多用戶的 SQL 數據庫服務,憑藉其高性能、高可靠和易於使用的特性,成爲服務器領域中最受歡迎的開源數據庫系統。在2008年之前,MySQL 項目由 MySQL AB 公司進行開發、發佈和支持,以後歷經 Sun 公司收購 MySQL AB 公司,Oracle 公司收購 Sun 公司的過程,目前 MySQL 項目由 Oracle 公司負責運營和維護。mysql

MySQL 數據庫的用戶管理

  • 新建用戶
    mysql -u root -p ##登陸數據庫
    use mysql; ##進入mysql數據庫(全部建立的用戶都保存在mysql數據庫的user表中)
    CREATE USER 'username'@'host' IDENTIFIED BY 'password';
    #其中host是指定用戶能夠在哪些主機登陸,可以使用 IP地址、網段、主機名的形式,
    #本地用戶可用 localhost ,任意遠程主機登陸能夠用通配符 %sql

  • 查看用戶
    use mysql;
    select User,authentication_string,Host from user;數據庫

  • 刪除用戶
    DROP USER 'username'@'host';服務器

  • 重命名用戶
    RENAME USER 'old_user'@'host' TO 'new_user'@'host';多線程

  • 修改用戶密碼
    SET PASSWORD=PASSWORD('password'); #修改當前用戶密碼,括號內爲新密碼
    SET PASSWORD for 'username'@'host'=PASSWORD('password'); #修改其餘用戶的密碼ide

  • 忘記 root 用戶密碼的解決辦法
    1: 中止mysql服務進程
    systemctl stop mysqld.service #關閉mysql服務
    netstat -ntap | grep 3306 #確保mysql進程關閉工具

    2: 跳過用戶列表 user 驗證,使用戶能夠不使用密碼直接登陸
    mysqld --skip-grant-tables性能

    3: 從新打開一個終端,使用mysql直接登陸到數據庫
    mysql #直接進入數據庫
    update mysql.user set authentication_string=password('password') where user='root'; #修改root密碼線程

    4: 刷新數據庫,使用新密碼登陸root用戶
    flush privileges; #刷新數據庫
    mysql -u root -p #使用新密碼登陸進程

  • 受權管理
    GRANT 權限列表 ON 庫名.表名 TO 'username'@'host' IDENTIFIED BY 'password';

數據庫的備份及恢復

MySQL數據庫備份

  • 使用 tar 打包文件夾備份
    1) 安裝 xz 壓縮格式工具
    #yum install xz -y
    2) 打包數據庫文件,默認存放在安裝目錄的 data 文件夾
    #tar Jcvf /opt/mysql-$(data +%F).tar.xz /usr/local/mysql/data
    3) 若是數據庫文件損壞,能夠解壓縮備份文件
    #tar Jxvf /opt/mysql-2018-07-30.tar.xz /usr/local/mysql/data
    4)咱們可使用計劃性任務來自動對數據庫進行備份並按期刪除以前打包的數據庫文件

  • 使用 mysqldump 工具有份

    mysqldump -u root -p [密碼] [選項] [數據庫名] [數據表名] > /備份路徑/備份文件名

  1. 對庫 test 中的表 test_一、test_2進行備份
    #mysqldump -u root -p123456 test test_1 test_2 > /opt/dump.sql

  2. 對整個 test 庫進行備份
    #mysqldump -u root -p123456 test > /opt/test.sql

  3. 對多個庫進行備份(test庫、word庫)
    #mysqldump -u root -p123456 --databases test word > /opt/test_word.sql

  4. 對全部庫進行備份
    #mysqldump -u root -p123456 --all-databases > /opt/all.sql

  5. 直接備份表結構(test庫中的test_一、test_2表)
    #mysqldump -u root -p123456 -d test test_1 test_2 > /opt/tables.sql

恢復數據庫

  • 登陸 mysql 恢復
    drop database test; #刪除損壞的test庫
    source /opt/test.sql;

  • 使用mysql命令恢復
    drop database test; #刪除test庫
    create database test; #必須先建立test庫,不然會報錯
    exit; #退出數據庫
    mysql -u root -p123456 test < /opt/test.sql #使用命令恢復

  • 表的恢復和庫的恢復一致,只需注意先要進到表存放的庫裏面便可。
相關文章
相關標籤/搜索