mysql8.x 單機安裝 問題總結
阿新 • • 發佈:2021-06-02
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