1. 程式人生 > >mysql常用運維命令及許可權管理

mysql常用運維命令及許可權管理

1. /etc/init.d/mysqld start和mysql_safe --user=mysql &的啟動實質是一樣的
2. /etc/init.d/mysqld stop
   一般不用的停止資料庫的方法
     killall mysqld
     pkill mysqld
     killall -9 mysqld
     kill pid
   優雅關閉資料庫
    第一種
    mysqladmin -uroot -poldboy123 shutdown
    第二種
    /etc/init.d/mysqld stop
    第三種kill訊號的方法
    kill -usr2 `cat path/pid`

3.mysql登入
    mysql  剛裝完系統無密碼情況登入方式
    mysql -uroot 剛裝完系統無密碼情況登入方式 不要密碼
    mysql -uroot -p 這是標準的dba命令列登入命令

    登入提示符修改  prompt \[email protected] \r:\m:\s->
4.多例項登入
    mysql -uroot -proot123 -S /data/3306/mysql.sock

   遠端登入不需要sock
    mysql -uroot -p -h 127.0.0.1 -P3307

5.mysql安全策略介紹
    設定root賬號密碼
    刪除無用的mysql庫內的使用者賬號
    刪除預設存在的test資料庫
    極端做法可以刪除root賬號,新建一個超級賬號代替root賬號
      delete from mysql.user;
      grant all privileges on *.* to

[email protected]'localhost' identified by system with grant option
    為管理員賬號設定密碼,多例項指定sock
      mysqladmin -uroot password 'root123'
      mysqladmin -uroot password 'root123' -S /u01/data/3306/mysql.sock
    單例項修改密碼
      mysqladmin -uroot -proot123 password 'root123'
      mysqladmin -uroot -proot123 password 'root123' -S /u01/data/3306/mysq.sock
    第二種修改使用者密碼方法
      set password=password('root123')

    修改完密碼要重新整理
       flush privileges

6.找回mysql丟失的密碼
     首先停止資料庫  
        /etc/init.d/mysqld stop
     使用skip-grant-tables選項啟動資料庫
        mysqld_safe --skip-grant-tables --user=mysql &
     使用mysql 無密碼登入mysql資料庫
        update mysql.user set password=password('root123')  where user='root123' and host='localhost'
        flush privileges;
     使用mysqladmin 關閉資料庫
        mysqladmin -uroot -proot123 shutdown
     重啟mysql資料庫
        /etc/init.d/mysqld start
     登入客戶端
        mysql -uroot -p

7.多例項mysql丟失密碼找回
     首先停止資料庫
       /u01/data/3306/mysql stop
     使用skip-grant-tables選項啟動資料庫
       mysqld_safe --default-file=/u01/data/3306/my.cnf --skip-grant-tables &
       /u01/data/3306/mysql -S /u01/data/3306/mysql.sock
       update mysql.user set password=password('root123')  where user='root123' and host='localhost'
       flush privileges
     使用mysqladmin關閉資料庫
       mysqladmin -uroot -proot123 shutdown -S /etc/data/3306/mysql.sock
     重啟mysql資料庫
       /u01/data/3306/mysql start
     登入客戶端
       mysql -uroot -p -S /u01/data/mysql.sock
8.mysql資料庫常見管理應用
     建立資料庫
       create database shang;
     顯示資料庫
       show databases;
     檢視建庫語句
       show create database shang \G
     帶有字符集的建庫語句
       create database shang default character set gbk collate gbk_chinese_ci;
       create database shang default character set utf8 collate utf8_gereral_ci;
     檢視當前的資料庫、使用者、時間
       select database()
       select user();
       select now();
       select version()
     查看錶
       show tables;
     刪除多餘賬號
       drop user ''@'localhost'
     建立使用者及賦予使用者許可權
      例子 建立oldboy使用者,對test庫具備所有許可權,允許從localhost主機登入管理資料庫,密碼是oldboy123
        grant all privileges on test.* to [email protected] identified by 'oldboy123'

        create user [email protected] identified by 'oldboy123'
        grant all privileges on test.* to [email protected]

     檢視使用者許可權
        show grants for 'user'@'機器ip'
     允許遠端連線資料庫的授權(允許test使用者從10.10.01.*區域網主機上連線資料庫,連線密碼是test123)
        grant all privileges on *.* to [email protected]'10.10.10.%' identified by 'test123'
        遠端連線語句 接機器ip地址
        msyql -utest -ptest -h 10.10.22.155

     檢視mysql可以授權的許可權
 9.mysql有哪些許可權

 SELECT
 insert
 UPDATE
 DELETE
 CREATE
 DROP
 REFERENCES
 INDEX
 ALTER
 CREATE TEMPORARY TABLES
 LOCK TABLES
 EXECUTE
 CREATE VIEW
 SHOW VIEW
 CREATE ROUTINE
 ALTER ROUTINE
 EVENT
 TRIGGER ON `test`.* TO 'test'@'localhost'