1. 程式人生 > 其它 >Docker 中安裝MYSQL/遠端連線 出錯

Docker 中安裝MYSQL/遠端連線 出錯

技術標籤:伺服器mysqldocker

Docker 中連線/遠端連線MYSQL 出錯

mysql版本:5.7
docker版本:20.10.04

1. 進入MYSQL伺服器失敗

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'

解決

mysql服務沒有啟動

# 容器內啟動
/etc/init.d/mysql start

2. 遠端連線Docker MYSQL 出錯

沒有給遠端連線授權

解決

2.1 進入MySQL容器,登陸MySQL

docker exec -it mysql /bin/bash

2.2 登入mysql

  mysql -u root -p

2.3 選擇mysql自身的資料庫

use mysql;

2.4 檢視使用者資訊

select host,user,plugin,authentication_string from mysql.user;

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-SAdLw7O9-1608261753962)(Docker 中安裝MYSQL 出錯.assets/image-20201218103901560.png)]

如果host 下沒有 ‘%’ 則需要新增 代表允許遠端登入 localhost代表只允許本地登入
在這裡插入圖片描述

%允許來自任何ip的連線
localhost允許本機的連線

新增‘%’

update user set host = '%' where user = 'root';

2.5 授權遠端連線

# GRANT ALL ON *.* TO 'user'@'host';
GRANT ALL ON *.* TO 'root'@'%';

重新整理許可權

flush privileges

2.6 更改加密規則

ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;

更新root使用者密碼

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';

重新整理許可權

flush privileges;

2.7 若是連線的是騰訊雲/阿里雲

需要在雲伺服器的配置頁面的安全組裡開放資料庫連線埠(如3306之類)

借鑑:https://cloud.tencent.com/developer/article/1633614