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
為管理員賬號設定密碼,多例項指定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'