1. 程式人生 > 其它 >mysql8.x 單機安裝 問題總結

mysql8.x 單機安裝 問題總結

2019獨角獸企業重金招聘Python工程師標準>>> hot3.png

1、下載mysql安裝包,解壓安裝檔案,修改名稱為mysql

wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.13-linux-glibc2.12-x86_64.tar.xz

2、在mysql資料夾下建立data目錄

mkdir data

3、建立 mysql 使用者組和 mysql 使用者

groupadd mysql

useradd -g mysql mysql

4、改變 mysql 目錄許可權

chown -R mysql:mysql /opt/tools/mysql

5、建立mysql配置檔案my.cnf

vim /etc/my.cnf

檔案內容如下
[client]
port=3306
socket=/opt/tools/mysql/mysql.sock

[mysqld]
port=3306
user=mysql
socket=/opt/tools/mysql/mysql.sock
basedir=/opt/tools/mysql
datadir=/opt/tools/mysql/data
log-error=/opt/tools/mysql/logs/error.log

6、初始化mysql

1、bin/mysqld --initialize --user=mysql --basedir=/opt/tools/mysql/ --datadir=/opt/tools/mysql/data/

注意此種方式初始化mysql預設密碼顯示在my.cnf檔案中的配置的日誌log-error指定的日誌檔案中,即/opt/tools/mysql/logs/error.log中

找到日誌中的 rfUwQep;X4o= 這就是密碼
2018-11-02T04:57:08.918454Z 5 [Note] [MY-010454] [Server] A temporary password is generated for 
[email protected]
: rfUwQep;X4o= 2、bin/mysqld --initialize-insecure --user=mysql --basedir=/opt/tools/mysql/ --datadir=/opt/tools/mysql/data/ -insecure 設定為生成沒有密碼的root使用者

7、啟動mysql服務

support-files/mysql.server start

8、修改預設密碼

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';

安裝過程中遇到的各種問題:

1、啟動mysql後沒有密碼登入不了,root使用者空密碼登入不了,正常啟動MYSQL服務後,敲Linux中root賬戶和密碼進入不去。

注意:skip-grant-table啟動無法執行ALTER user 'root'@'localhost' IDENTIFIED BY '123456'

1、在/etc/my.cnf配置檔案中加入skip-grant-table,即遮蔽密碼驗證
vim /etc/my.cnf  

2、在 [mysqld]最後加上skip-grant-tables語句 並保持退出檔案

3、重啟mysql服務
service mysqld restart

4、啟動後登入mysql
mysql -u root -p  

5、檢視使用者列表
select host, user, authentication_string, plugin from user;
host: 允許使用者登入的ip‘位置’%表示可以遠端;
user:當前資料庫的使用者名稱;
authentication_string: 使用者密碼;在mysql 5.7.9以後廢棄了password欄位和password()函式

6、修改密碼,如果當前root使用者authentication_string欄位下有內容,先將其設定為空
use mysql;  
update user set authentication_string='' where user='root';

7、退出mysql, 刪除/etc/my.cnf檔案最後的 skip-grant-tables

8、重啟mysql服務

9、登入mysql終端,提示密碼直接敲Enter
mysql -uroot 

10、修改密碼
ALTER user 'root'@'localhost' IDENTIFIED BY '123456'

2、MySQL 1130 錯誤,無法遠端連線

錯誤:ERROR 1130: Host 'xxx.xxx.xxx.xxx' is not allowed to connect to thisMySQL serve

錯誤1130:主機192.168.1.3”不允許連線到thismysql服務

原因:被連線的資料不允許使用 xxx.xxx.xxx.xxx訪問,只允許是用 localhost;

1、登入mysql
mysql -u root -p 123456

use mysql;

select 'host' from user where user='root';

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

flush privileges;

select 'host' from user where user='root';

執行完畢後再次連線測試,若還不行重啟mysql服務

3、Navicat連線Mysql 出現1251錯誤

因為mysql8 之前的版本中加密規則是mysql_native_password,而在mysql8之後,加密規則是caching_sha2_password

1、修改加密規則
ALTER USER 'root'@'%' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;

2、更新一下使用者的密碼
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '要修改的密碼';

3、重新整理許可權
FLUSH PRIVILEGES; 

轉載於:https://my.oschina.net/kdy1994/blog/2396148