柚子快報(bào)邀請(qǐng)碼778899分享:常用Mysql命令
柚子快報(bào)邀請(qǐng)碼778899分享:常用Mysql命令
前言
本文列舉了一些常見的mysql操作
正文
一、連接和登錄 MySQL
1. 使用命令行登錄 MySQL
注意:需要將mysql的bin目錄導(dǎo)入到環(huán)境變量中
mysql -u 用戶名 -p
示例:
mysql -u root -p
執(zhí)行上述命令后,系統(tǒng)會(huì)提示輸入密碼,輸入正確的密碼即可登錄到 MySQL 控制臺(tái)。 如果密碼忘記則可以直接跳到六
2. 指定主機(jī)和端口登錄
mysql -u 用戶名 -p -h 主機(jī)地址 -P 端口號(hào)
示例:
mysql -u root -p -h localhost -P 3306
二、查看 MySQL 用戶
1. 查看所有用戶
登錄到 MySQL 后,執(zhí)行以下 SQL 語句查看所有用戶:
SELECT User, Host FROM mysql.user;
說明:
User 列顯示用戶名。Host 列顯示用戶可以從哪些主機(jī)連接。
2. 查看用戶及其權(quán)限
SHOW GRANTS FOR '用戶名'@'主機(jī)';
示例:
SHOW GRANTS FOR 'root'@'localhost';
三、創(chuàng)建和刪除用戶
1. 創(chuàng)建新用戶
CREATE USER '用戶名'@'主機(jī)' IDENTIFIED BY '密碼';
示例:
CREATE USER 'testuser'@'localhost' IDENTIFIED BY 'Test@1234';
說明:
'用戶名':新用戶的名稱。'主機(jī)':指定用戶可以從哪些主機(jī)連接,'localhost'表示只能從本地主機(jī)連接,'%'表示可以從任何主機(jī)連接。'密碼':為用戶設(shè)置的密碼。
2. 刪除用戶
DROP USER '用戶名'@'主機(jī)';
示例:
DROP USER 'testuser'@'localhost';
四、修改用戶密碼
在 MySQL 8.0 之前和之后,修改用戶密碼的方式有所不同。以下是兩種不同版本中的密碼修改方法:
MySQL 8.0 之前
在 MySQL 8.0 之前,使用 SET PASSWORD 命令或 UPDATE 命令來修改用戶密碼。常見的方式如下:
使用 SET PASSWORD 命令: SET PASSWORD FOR 'username'@'host' = PASSWORD('new_password');
例如: SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new_password');
使用 UPDATE 命令直接更新 mysql.user 表: UPDATE mysql.user SET Password = PASSWORD('new_password') WHERE User = 'username' AND Host = 'host';
FLUSH PRIVILEGES;
例如: UPDATE mysql.user SET Password = PASSWORD('new_password') WHERE User = 'root' AND Host = 'localhost';
FLUSH PRIVILEGES;
MySQL 8.0 及以后
從 MySQL 8.0 開始,推薦使用 ALTER USER 語句來修改用戶密碼。mysql.user 表中的密碼字段也改名為 authentication_string。
使用 ALTER USER 命令: ALTER USER 'username'@'host' IDENTIFIED BY 'new_password';
例如: ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
不再需要使用 FLUSH PRIVILEGES: 在 MySQL 8.0 及以后,使用 ALTER USER 修改密碼后,不需要再執(zhí)行 FLUSH PRIVILEGES 命令。
其他說明
在 MySQL 8.0 之前,PASSWORD() 函數(shù)用于生成加密后的密碼值;在 MySQL 8.0 中則不再使用該函數(shù)。從 MySQL 5.7 開始,MySQL 默認(rèn)使用 mysql_native_password 插件進(jìn)行密碼驗(yàn)證,而在 MySQL 8.0 中則默認(rèn)使用 caching_sha2_password 插件。
五、權(quán)限管理
1. 授予權(quán)限
GRANT 權(quán)限 ON 數(shù)據(jù)庫.表 TO '用戶名'@'主機(jī)';
示例:
GRANT SELECT, INSERT, UPDATE ON mydatabase.* TO 'testuser'@'localhost';
說明:
權(quán)限:可以是單個(gè)權(quán)限,如 SELECT,也可以是多個(gè)權(quán)限,用逗號(hào)分隔,或者使用 ALL PRIVILEGES 授予所有權(quán)限。數(shù)據(jù)庫.表:指定權(quán)限適用的數(shù)據(jù)庫和表,*.* 表示所有數(shù)據(jù)庫的所有表。
2. 撤銷權(quán)限
REVOKE 權(quán)限 ON 數(shù)據(jù)庫.表 FROM '用戶名'@'主機(jī)';
示例:
REVOKE SELECT, INSERT ON mydatabase.* FROM 'testuser'@'localhost';
3. 刷新權(quán)限
在修改權(quán)限后,執(zhí)行以下命令使權(quán)限生效:
FLUSH PRIVILEGES;
4. 查看用戶權(quán)限
SHOW GRANTS FOR '用戶名'@'主機(jī)';
示例:
SHOW GRANTS FOR 'testuser'@'localhost';
六、查看當(dāng)前連接和會(huì)話
1. 查看當(dāng)前連接的會(huì)話
SHOW PROCESSLIST;
說明: 該命令顯示當(dāng)前正在運(yùn)行的線程信息,包括線程 ID、用戶、主機(jī)、數(shù)據(jù)庫、命令、執(zhí)行時(shí)間、狀態(tài)和信息。
2. 查看當(dāng)前連接數(shù)
SHOW STATUS LIKE 'Threads_connected';
七、啟動(dòng)和停止 MySQL 服務(wù)
在 Windows 下
啟動(dòng) MySQL 服務(wù):
net start mysql
停止 MySQL 服務(wù):
net stop mysql
八、配置 MySQL 服務(wù)器設(shè)置
MySQL 的配置文件通常位于 /etc/my.cnf(Linux)或 C:\ProgramData\MySQL\MySQL Server X.X\my.ini(Windows)。
常見配置選項(xiàng):
[mysqld]
port=3306
bind-address=0.0.0.0
max_connections=200
default_storage_engine=InnoDB
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci
說明:
port:設(shè)置 MySQL 服務(wù)的端口號(hào)。bind-address:設(shè)置 MySQL 監(jiān)聽的 IP 地址,0.0.0.0 表示監(jiān)聽所有地址。max_connections:設(shè)置最大連接數(shù)。default_storage_engine:設(shè)置默認(rèn)存儲(chǔ)引擎。character-set-server 和 collation-server:設(shè)置默認(rèn)字符集和校對(duì)規(guī)則。
修改配置文件后,需要重啟 MySQL 服務(wù)使配置生效。
九、備份和恢復(fù)數(shù)據(jù)庫
1. 備份數(shù)據(jù)庫
mysqldump -u 用戶名 -p 數(shù)據(jù)庫名 > backup.sql
示例:
mysqldump -u root -p mydatabase > mydatabase_backup.sql
2. 恢復(fù)數(shù)據(jù)庫
mysql -u 用戶名 -p 數(shù)據(jù)庫名 < backup.sql
示例:
mysql -u root -p mydatabase < mydatabase_backup.sql
柚子快報(bào)邀請(qǐng)碼778899分享:常用Mysql命令
推薦閱讀
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場。
轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。