1.mysql數據庫啟動、關閉、登錄
1.1單實例數據庫啟動、關閉、登錄
1)
mysql啟動
/etc/init.d/mysqld start
mysqld_safe --user=mysql & #兩者啟動實質是一樣的&使用編譯及二進制安裝的mysql,啟動腳本由mysql-xx/support-files/mysql.server復制而來
確認mysql端口
ss -lnt|grep 3306
查看mysql進程
ps -ef|grep mysql|grep -v grep
2)關閉數據庫
/etc/init.d/mysqld stop
mysqladmin -uroot -poldboy shutdown #比較溫和的關閉方法
也可以強制關閉數據庫
killall mysqld
pkill mysqld
killall -9 mysqld
3)登錄
mysql
mysql -uroot
mysql -uroot -p #可以修改Mysql登錄后的提示符:prompt \u@wk \r:\m:\s-> (臨時生效,若想永久生效,放在my.cnf的【mysql】下)
退出mysql數據庫
quit或\q
Ctrl+C或Ctrl+D
1.2多實例數據庫啟動、關閉、登錄 #以3306實例為例
1)啟動
/data/3306/mysql start
mysqld_safe --defaults-file=/data/3306/my.cnf 2>&1 > /dev/null &
2)關閉
/data/3306/mysql stop
mysqladmin -uroot -poldboy123 -S /data/3306/mysql.sock shutdown
3)登錄
mysql -uroot -p -S /data/3306/mysql.sock
mysql -u root -p -h localhost -P 3306 #理論上可以通過不指定sock路徑的方式登錄
2.幫助命令--help
如:help grants
可以在mysql中查看系統文件:如 system ls /tmp
查看某數據庫用戶的權限:show grants for 'root'@'localhost';
3.為管理員root用戶設置/修改密碼
mysqladmin -u root password 'oldboy123' #單實例
mysqladmin -u root -p 'oldboy123' -S /data/3306/mysql.sock #多實例
mysqladmin -uroot -poldboy123 password '123' #在單實例已有密碼的基礎上修改密碼,推薦使用!
update mysql.user set password=password(456) where user='root' and host='localhost'; #登錄mysql后執行,完成后如需要flush privileges
set password=password('oldboy123'); #登錄mysql后執行
>>>mysql密碼丟失找回方法(單實例)
1)停止mysql:/etc/init.d/mysqld stop
2)忽略授權表:mysqld_safe --skip-grant-tables --user=mysql &
3)update mysql.user set password=password(456) where user='root' and host='localhost';
flush privileges;
4)重啟:mysqladmin -uroot -p456 shutdown
/etc/init.d/mysqld start
>>>mysql密碼丟失找回方法(多實例)
1)關閉mysql:killall mysqld
2)忽略授權表
mysqld_safe --defaults_file=/data/3306/my.cnf --skip-grant-tables &
mysql -u root -p -S /data/3306/mysql.sock #登錄時空密碼
3)update mysql.user set password=password(“oldboy123”) where user='root';
flush privileges;
4)重啟:mysqladmin -uroot -poldboy123 -S /data/3306/mysql.sock shutdown
mysqld_safe --defaults-file=/data/3306/my.cnf
4.創建、顯示、刪除&連接數據庫
4.1)創建數據庫
create database oldboy;
show create database oldboy\G #默認的字符集為Latin1,若my.cnf中制定了字符集則創建的數據庫為該配置文件中的字符集模式,無需再指定~
create database oldboy_gbk DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci; #可以指定使用特定的字符集創建數據庫
4.2)企業中創建數據庫選擇方法
1)根據開發的程序確定字符集(建議UTF8)
2)編譯時在my.cnf中指定字符集,建庫時默認創建即可
3)編譯的時候指定了與程序不同的字符集,則需要在創建數據庫時指定所需的字符集
4.3)顯示數據庫
show databases like '%old%';
use oldboy;
select database(); #顯示當前數據庫
4.4)刪除數據庫
drop database oldboy_gbk;
4.5)連接數據庫
use oldboy;
select version(); #查看數據庫版本
select user(); #查看數據庫用戶
select now(); #查看當前時間
show tables; #進入某庫查看所有表
5.刪除系統多余賬號
select user.host from mysql.user;
drop user "user"@"主機”; #若刪除不了,則用delete的方式刪 delete from mysql.user where user=' ' and host=' '; flush privileges;
6.創建mysql用戶及賦權
對用戶的授權采用最小化原則(如,只給insert,delete,update,select,create,drop權限,等部署好后回收create,drop權限,主從庫授權可能不同)
help grant
CREATE USER 'jeffrey'@'localhost' IDENTIFIED BY 'mypass'; #默認為USAGE權限
GRANT ALL ON db1.* TO 'jeffrey'@'localhost'; #可以寫為GRANT all privileges ON db1.* TO 'jeffrey'@'localhost' IDENTIFIED BY 'mypass';
GRANT SELECT ON db2.invoice TO 'jeffrey'@'localhost';
GRANT USAGE ON *.* TO 'jeffrey'@'localhost' WITH MAX_QUERIES_PER_HOUR 90;
查看ALL PRIVILEGES包括哪些
1)通過踢除一個權限從而看到其他所有權限
#篩選語句mysql -uroot -poldboy123 -S /data/3306/mysql.sock -e "show grants for jeffrey@localhost;"|grep -i grant|tail -1|tr ',' '\n' >all.txt
2)也可在庫中通過查詢user表查詢權限
use mysql
show tables;
desc user\G;
。。。
2018年10月28日
祝好!