Ubuntu20.04安裝mysql8.0并設(shè)置遠(yuǎn)程連接
更新源
sudo apt update
執(zhí)行MySQL安裝命令,安裝完畢默認(rèn)啟動(dòng)
sudo apt install mysql-server
查看/啟動(dòng)/停止 MySQL服務(wù)狀態(tài):
sudo systemctl status mysql
sudo systemctl start mysql
sudo systemctl stop mysql
MySQL快速安裝腳本mysql_secure_installation
曾棕,敬肚。
調(diào)用腳本來(lái)輕松設(shè)置和管理mysql 初始化工作,配置數(shù)據(jù)庫(kù)服務(wù)器的安全性工作。
sudo mysql_secure_installation
安全設(shè)置之一倾贰,選擇MySQL設(shè)置密碼的強(qiáng)度
密碼驗(yàn)證策略分為三個(gè)級(jí)別:低冕碟,中和強(qiáng)
Securing the MySQL server deployment.
Connecting to MySQL using a blank password.
VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?
Press y|Y for Yes, any other key for No: y
安全設(shè)置之一,設(shè)置MySQL root用戶的密碼
Please set the password for root here.
New password:
Re-enter new password:
接下來(lái)匆浙,腳本將要求刪除匿名用戶安寺,限制root用戶對(duì)本地計(jì)算機(jī)的訪問(wèn),刪除測(cè)試數(shù)據(jù)庫(kù)并重新加載特權(quán)表吞彤。
先以root用戶身份登錄到MySQL服務(wù)器我衬,請(qǐng)輸入:
sudo mysql
設(shè)置外部程序(例如IDEA)以root用戶身份登錄到MySQL服務(wù)器
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '密碼';
# 刷新設(shè)置
FLUSH PRIVILEGES;
之后便可以通過(guò)密碼登錄 mysql
mysql -u root -p
遠(yuǎn)程訪問(wèn)相關(guān)設(shè)置
向MySQL用戶帳戶授予權(quán)限
要授予對(duì)特定數(shù)據(jù)庫(kù)用戶帳戶的所有特權(quán),請(qǐng)使用以下命令:
GRANT ALL PRIVILEGES ON database_name.* TO 'database_user'@'localhost';
# myroot 用戶設(shè)置所有主機(jī)可以訪問(wèn),并給定操作數(shù)據(jù)庫(kù)所有權(quán)限
create user myroot@'%' identified by 'Mypasswd@123';
grant all privileges on *.* to myroot@'%' with grant option;
要授予對(duì)所有數(shù)據(jù)庫(kù)用戶帳戶的所有特權(quán)饰恕,請(qǐng)使用以下命令:
GRANT ALL PRIVILEGES ON *.* TO 'database_user'@'localhost';
要對(duì)數(shù)據(jù)庫(kù)中的特定表授予用戶帳戶的所有特權(quán)挠羔,請(qǐng)使用以下命令:
GRANT ALL PRIVILEGES ON database_name.table_name TO 'database_user'@'localhost';
如果要僅授予特定數(shù)據(jù)庫(kù)類型的用戶帳戶特定特權(quán),請(qǐng)執(zhí)行以下操作:
GRANT SELECT, INSERT, DELETE ON database_name.* TO database_user@'localhost';
從MySQL用戶帳戶撤消權(quán)限
如果您需要撤消一個(gè)用戶帳戶的一個(gè)或多個(gè)特權(quán)或所有特權(quán)埋嵌,則語(yǔ)法幾乎與授予它相同破加。例如,如果要撤消特定數(shù)據(jù)庫(kù)上用戶帳戶的所有特權(quán)雹嗦,請(qǐng)使用以下命令:
REVOKE ALL PRIVILEGES ON database_name.* TO 'database_user'@'localhost';
刷新配置
FLUSH PRIVILEGES;
更改mysql配置文件:
在更改MySQL配置文件時(shí)一定要停止MySQL服務(wù)否則配置文件無(wú)法保存
sudo systemctl stop mysql
vim /etc/mysql/mysql.conf.d/mysqld.cnf
注掉 bind-address = 127.0.0.1
# bind-address = 127.0.0.1
配置字符集范舀,統(tǒng)一字符集為utf8
[client]中添加
default-character-set=utf8
[mysql]中添加
default-character-set=utf8
[mysqld]中添加
character-set-server = utf8
設(shè)置后重啟mysql 服務(wù)合是,查詢字符集設(shè)置結(jié)果
show variables like '%char%';
設(shè)置成功結(jié)果顯示
+--------------------------------------+----------------------------+
| Variable_name | Value |
+--------------------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
| validate_password.special_char_count | 1 |
+--------------------------------------+----------------------------+
9 rows in set (0.01 sec)
啟動(dòng)MySQL服務(wù):
sudo service mysql start
查看服務(wù)狀態(tài):
sudo service mysql status
遠(yuǎn)程登錄測(cè)試
使用 Navicat Premium 12 測(cè)試遠(yuǎn)程登錄
1、新建MySQL連接
2锭环、配置連接信息
3聪全、點(diǎn)擊測(cè)試連接 ---- > 顯示連接成功
注意:如果連接測(cè)試失敗,遠(yuǎn)程N(yùn)avicat無(wú)法連接辅辩,提示密碼規(guī)則錯(cuò)誤难礼,需要更改mysql密碼規(guī)則
mysql8的加密方式和Navicat不一樣,使用和Navicat匹配的密碼加密規(guī)則玫锋,重新設(shè)定密碼蛾茉。
ALTER USER '用戶'@'localhost' IDENTIFIED BY '密碼' PASSWORD EXPIRE NEVER;
ALTER USER '用戶'@'localhost' IDENTIFIED WITH mysql_native_password BY '密碼';