天天看點

Linux - MySQL 8.0(二)基本操作:遠端連接配接(Yum、Apt)前言Yum(Red Hat、CentOS)Apt(Debain、Ubuntu)坑!

文章目錄

  • 前言
  • Yum(Red Hat、CentOS)
    • 一、配置
      • 1. 檢視初始化密碼
      • 2. 登入MySQL
      • 3. 修改初始化密碼
      • 4. `root`使用者遠端設定
      • 5. 允許`root`使用者從任何主機通路資料庫
      • 6. 建立`dbadmin`使用者
      • 7. 允許`myuser`使用者從指定IP登入
  • Apt(Debain、Ubuntu)
    • 一、配置
  • 坑!

此學習文是基于MySQL 8.0寫的

得益于大神朋友的悉心指導解決不少坑,才寫出此文,向大神奉上膝蓋

前言

參考文章 備注
Linux - 線上安裝解除安裝MySQL 8.0(Yum、Apt) 前置依賴
MySQL - MySQL 8.0基本操作:使用者 後置依賴

Yum(Red Hat、CentOS)

一、配置

1. 檢視初始化密碼

[[email protected] ~]$ sudo cat /var/log/mysqld.log | grep password
2019-07-15T00:42:14.636290Z 5 [Note] [MY-010454] [Server] A temporary password is generated for [email protected]: sx+H1gspzouH
           

2. 登入MySQL

首次登入用初始化密碼

[[email protected] ~]$ mysql -u root -p
           

3. 修改初始化密碼

建議修改初始化密碼,安全好記

密碼一定要大小寫字母+數字+符号,如:[email protected]

  • 身份驗證插件類型
    1. mysql_native_password(MySQL 5.7版本)
    2. caching_sha2_password(MySQL 8.0版本)

4.

root

使用者遠端設定

# 切換mysql庫
mysql> use mysql;
# 更新host,任意位址用 %
mysql> update mysql.user set host='%' where user='root';
# 查詢驗證一下,plugin是預設加密驗證插件
mysql> select host, user, plugin from mysql.user;
+-----------+------------------+-----------------------+
| host      | user             | plugin                |
+-----------+------------------+-----------------------+
| %         | root             | caching_sha2_password |
| localhost | mysql.infoschema | caching_sha2_password |
| localhost | mysql.session    | caching_sha2_password |
| localhost | mysql.sys        | caching_sha2_password |
+-----------+------------------+-----------------------+
4 rows in set (0.00 sec)
           

5. 允許

root

使用者從任何主機通路資料庫

庫名:要遠端通路的資料庫名稱,所有的資料庫使用

*

表名:要遠端通路的資料庫下的表的名稱,所有的表使用

*

使用者名:要賦給遠端通路權限的使用者名稱

IP位址:可以遠端通路的電腦的IP位址,所有的位址使用

%

密碼:要賦給遠端通路權限的使用者對應使用的密碼

# 開放遠端通路權限
mysql> grant all privileges on *.* to 'root'@'%' with grant option;
# 重新整理權限
mysql> flush privileges;
           
  • 補充:如果報錯,不允許使用

    GRANT

    建立使用者

    重新登陸

    root

    再次執行即可!
ERROR 1410 (42000): You are not allowed to create a user with GRANT
           

6. 建立

dbadmin

使用者

使用

[email protected]

密碼從任何主機連接配接到mysql伺服器

# 建立新使用者,密碼永不過期
mysql> create user 'dbadmin'@'%' identified with mysql_native_password by '[email protected]' password expire never;
# 開放權限
mysql> grant all privileges on *.* to 'dbadmin'@'%'  with grant option;
# 查詢驗證一下
mysql> select host, user, plugin from mysql.user;
+-----------+------------------+-----------------------+
| host      | user             | plugin                |
+-----------+------------------+-----------------------+
| %         | dbadmin          | mysql_native_password |
| %         | root             | caching_sha2_password |
| localhost | mysql.infoschema | caching_sha2_password |
| localhost | mysql.session    | caching_sha2_password |
| localhost | mysql.sys        | caching_sha2_password |
+-----------+------------------+-----------------------+
5 rows in set (0.00 sec)
           
  • password expire never

    :密碼永不過期
  • with grant option

    :表示該使用者可以将自己擁有的權限授權給别人。

7. 允許

myuser

使用者從指定IP登入

例如:IP為192.168.1.12的主機連接配接到mysql伺服器,并使用

mypassword

作為密碼

下面是個例子,不會執行成功的,需改成自己的使用者和密碼

Apt(Debain、Ubuntu)

一、配置

Apt的線上安裝方式已經設定了

root

密碼

直接使用密碼登陸就ok,後續操作與Yum方式一緻

坑!

  1. Navicat連接配接報

    10060 "Unknown error"

    錯誤
    Linux - MySQL 8.0(二)基本操作:遠端連接配接(Yum、Apt)前言Yum(Red Hat、CentOS)Apt(Debain、Ubuntu)坑!
  • 關閉防火牆(

    生産環境千萬别這麼玩,應該設定特定端口的入站規則

# Yum
啟動: sudo systemctl start firewalld
關閉: sudo systemctl stop firewalld
開機啟用: sudo systemctl enable firewalld
開機禁用: sudo systemctl disable firewalld
檢視狀态: sudo systemctl status firewalld

# Apt
           
  • 版本相容性

    原因:MySQL 8.0 更換了預設的密碼政策,MySQL 5.8開始将

    caching_sha2_password

    作為預設的身份驗證插件,低版本Navicat不支援而已

    解決辦法:登陸使用者的加密規則改成舊的

    mysql_native_password

    就行,或者更新Navicat為最新版本
#修改加密規則,密碼永不過期
mysql> alter user 'root'@'%' identified by '{password}' password expire never;
#更新密碼(mysql_native_password模式)
mysql> alter user 'root'@'%' identified with mysql_native_password by '{newpassword}';
# 查詢驗證一下
mysql>  select host, user, plugin from mysql.user;
+-----------+------------------+-----------------------+
| host      | user             | plugin                |
+-----------+------------------+-----------------------+
| %         | nan              | mysql_native_password |
| %         | root             | mysql_native_password |
| localhost | mysql.infoschema | caching_sha2_password |
| localhost | mysql.session    | caching_sha2_password |
| localhost | mysql.sys        | caching_sha2_password |
+-----------+------------------+-----------------------+
5 rows in set (0.00 sec)
           

繼續閱讀