show databases; /查看數(shù)據(jù)庫名
show tables; /查看某數(shù)據(jù)庫的表名
show variables like 'port'; /查看數(shù)據(jù)庫使用端口
show grants for ‘用戶’@‘地址’; /查看某用戶權(quán)限
show variables like ‘%max_connections%’; /查看數(shù)控最大連接數(shù)
flush privileges ; /刷新修改
delete from mysql.user where user='用戶'; /刪除某個用戶
use information_schema; /查看當(dāng)前數(shù)據(jù)庫大小
1. mysql密碼問題 一. 修改:
方法1. 用SET 命令
set password for 用戶名@localhost = password('新密碼');
方法2. 用
$ mysqladmin -u用戶名 -p舊密碼 password 新密碼
方法3. 用UPDATE直接編輯user表
update user set password=password('123') where user='root' and host='localhost';
flush privileges;
方法4. 出現(xiàn) ERROR 1054(42S22) Unknown column ‘’ in ‘field list’報錯
錯誤的原因是 5.7版本下的mysql數(shù)據(jù)庫下已經(jīng)沒有這個字段了,字段改成了g
跟換字段,從新修改即可。
二. 新裝:
新裝的mysql會生成一個隨機(jī)密碼,存在
/var/log/mysqld.log
三. 忘記密碼:
/etc/my.cof
添加skip-grant-tables 重啟服務(wù),修改完密碼后記得刪除。
2. 修改數(shù)據(jù)庫,數(shù)據(jù)表名問題 一. rename 命令
這個語法在mysql 5.1.7中被添加進(jìn)來,到了5.1.23又去掉了(官方并不推薦,數(shù)據(jù)有丟失風(fēng)險),rename 不能用了但是 rename table 可以用,可以修改表名。
rename database db_name to new_db_name;
二. 命令
庫名:
$ mysqldump -u -p db_name > name.db /導(dǎo)出
$ mysqladmin -u -p create database new_database;
$ mysql -u -p new_database < name.db /導(dǎo)入
表名:
$ mysqldump database -u -p --tables table_name1 table_name2... > table.sql
ps:導(dǎo)入表時需要進(jìn)入要導(dǎo)入的庫
3. 數(shù)據(jù)庫用戶權(quán)限管理問題 創(chuàng)建賬戶:
create user 'user_name'@'host(%;localhost)' identified by 'password';
刪除賬戶:
drop user 'user_name' @ 'host';
grant 命令(賬戶權(quán)限管理):
grant 權(quán)限1,權(quán)限2,…權(quán)限n on 數(shù)據(jù)庫名稱.表名稱 to 用戶名@用戶地址 identified by "連接口令";
權(quán)限允許的操作
ALTER 修改表和索引
CREATE 創(chuàng)建數(shù)據(jù)庫和表
DELETE 刪除表中已有的記錄
DROP 拋棄(刪除)數(shù)據(jù)庫和表
INDEX 創(chuàng)建或拋棄索引
INSERT 向表中插入新行
REFERENCE 未用
SELECT 檢索表中的記錄
UPDATE 修改現(xiàn)存表記錄
FILE 讀或?qū)懛?wù)器上的文件

PROCESS 查看服務(wù)器中執(zhí)行的線程信息或殺死線程
RELOAD 重載授權(quán)表或清空日志、主機(jī)緩存或表緩存。
SHUTDOWN 關(guān)閉服務(wù)器
ALL 所有;ALL PRIVILEGES同義詞
USAGE 特殊的“無權(quán)限”權(quán)限
上表顯示在第一組的權(quán)限指定符適用于數(shù)據(jù)庫、表和列,第二組數(shù)管理權(quán)限。一般,這些被相對嚴(yán)格地授權(quán),因為它們允許用戶影響服務(wù)器的操作。第三組權(quán)限特殊,ALL意味著“所有權(quán)限”,UASGE意味著無權(quán)限,即創(chuàng)建用戶,但不授予權(quán)限。
columns
權(quán)限運(yùn)用的列,它是可選的,并且你只能設(shè)置列特定的權(quán)限。如果命令有多于一個列,應(yīng)該用逗號分開它們。
what
權(quán)限運(yùn)用的級別。權(quán)限可以是全局的(適用于所有數(shù)據(jù)庫和所有表)、特定數(shù)據(jù)庫(適用于一個數(shù)據(jù)庫中的所有表)或特定表的。可以通過指定一個columns字句是權(quán)限是列特定的。
user
權(quán)限授予的用戶,它由一個用戶名和主機(jī)名組成。在MySQL中,你不僅指定誰能連接,還有從哪里連接。這允許你讓兩個同名用戶從不同地方連接。MySQL讓你區(qū)分他們,并彼此獨立地賦予權(quán)限。
MySQL中的一個用戶名就是你連接服務(wù)器時指定的用戶名,該名字不必與你的Unix登錄名或Windows名聯(lián)系起來。缺省地,如果你不明確指定一個名字,客戶程序?qū)⑹褂媚愕牡卿浢鳛镸ySQL用戶名。這只是一個約定。你可以在授權(quán)表中將該名字改為nobody,然后以nobody連接執(zhí)行需要超級用戶權(quán)限的操作。
賦予用戶的口令,它是可選的。如果你對新用戶沒有指定 BY子句,該用戶不賦給口令(不安全)。對現(xiàn)有用戶,任何你指定的口令將代替老口令。如果你不指定口令,老口令保持不變,當(dāng)你用 BY時,口令字符串用改用口令的字面含義,GRANT將為你編碼口令,不要象你用SET 那樣使用()函數(shù)。
WITH GRANT OPTION子句是可選的。如果你包含它,用戶可以授予權(quán)限通過GRANT語句授權(quán)給其它用戶。你可以用該子句給與其它用戶授權(quán)的能力。
用戶名、口令、數(shù)據(jù)庫和表名在授權(quán)表記錄中是大小寫敏感的,主機(jī)名和列名不是。
————
摘要: