文章轉自 https://www.cnblogs.com/mujingyu/p/7689116.html
問題1 :my-default.cnf
注意 5.7.23 沒有 my-default.cnf
cnf 文件模板
[mysql]
# 設置mysql客戶端默認字符集
default-character-set=utf8
socket=/var/lib/mysql/mysql.sock
[mysqld]
#skip-name-resolve
#設置3306端口
port = 3306
socket=/var/lib/mysql/mysql.sock
# 設置mysql的安裝目錄
basedir=/usr/local/mysql
# 設置mysql數據庫的數據的存放目錄
datadir=/usr/local/mysql/data
# 允許最大連接數
max_connections=200
# 服務端使用的字符集默認為8比特編碼的latin1字符集
character-set-server=utf8
# 創建新表時將使用的默認存儲引擎
default-storage-engine=INNODB
#lower_case_table_name=1
max_allowed_packet=16M
所以 可以自行創建 ,然后copy到 /etc/my.cnf
如果忘記了my.cnf 安裝在了哪里, 可以使用 whereis my
問題2:mysqld_safe Directory '/var/lib/mysql' for UNIX socket file don't exists
可以看到問題是mysqld_safe Directory '/var/lib/mysql' for UNIX socket file don't exists
創建這個文件
mkdir /var/lib/mysql
chmod 777 /var/lib/mysql/
問題3: Access dennied for ....
我使用的是Navicat SQL 進行連接 但是 不知道 為什么 總是 報 Access denied.
然后再往上找方法了,
1) 解決方案一:賦權限:
也就是說 要 mysql 給 連接的電腦 權限, 這樣子才能連接。
grant all privileges on *.* to 'root'@'我電腦的ip地址' identified by '密碼';
grant all privileges on *.* to 'root'@'%' identified by 'myth';
當然 你要刷新一下 權限 flush privileges;
2) 解決方案二:跳過密碼驗證。
說是用遠程連接的時候需要密碼的驗證, 所以需要在my.cnf 中添加跳過密碼驗證
skip-grant-tables
可以先使用 whereis my 找到 my.cnf , 然后再最后一行添加skip-grant-tables 就 okay 了。