一、下載mysql安裝包,解壓安裝文件,修更名稱爲mysqlmysql
wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.13-linux-glibc2.12-x86_64.tar.xz
二、在mysql文件夾下建立data目錄linux
mkdir data
三、建立 mysql 用戶組和 mysql 用戶sql
groupadd mysql useradd -g mysql mysql
四、改變 mysql 目錄權限數據庫
chown -R mysql:mysql /opt/tools/mysql
五、建立mysql配置文件my.cnfvim
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
六、初始化mysqlsocket
一、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 root@localhost: rfUwQep;X4o= 二、bin/mysqld --initialize-insecure --user=mysql --basedir=/opt/tools/mysql/ --datadir=/opt/tools/mysql/data/ -insecure 設置爲生成沒有密碼的root用戶
七、啓動mysql服務函數
support-files/mysql.server start
八、修改默認密碼測試
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';
安裝過程當中遇到的各類問題:this
一、啓動mysql後沒有密碼登陸不了,root用戶空密碼登陸不了,正常啓動MYSQL服務後,敲Linux中root帳戶和密碼進入不去。加密
注意:skip-grant-table啓動沒法執行ALTER user 'root'@'localhost' IDENTIFIED BY '123456' 一、在/etc/my.cnf配置文件中加入skip-grant-table,即屏蔽密碼驗證 vim /etc/my.cnf 二、在 [mysqld]最後加上skip-grant-tables語句 並保持退出文件 三、重啓mysql服務 service mysqld restart 四、啓動後登陸mysql mysql -u root -p 五、查看用戶列表 select host, user, authentication_string, plugin from user; host: 容許用戶登陸的ip‘位置’%表示能夠遠程; user:當前數據庫的用戶名; authentication_string: 用戶密碼;在mysql 5.7.9之後廢棄了password字段和password()函數 六、修改密碼,若是當前root用戶authentication_string字段下有內容,先將其設置爲空 use mysql; update user set authentication_string='' where user='root'; 七、退出mysql, 刪除/etc/my.cnf文件最後的 skip-grant-tables 八、重啓mysql服務 九、登陸mysql終端,提示密碼直接敲Enter mysql -uroot 十、修改密碼 ALTER user 'root'@'localhost' IDENTIFIED BY '123456'
二、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;
一、登陸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服務
三、Navicat鏈接Mysql 出現1251錯誤
由於mysql8 以前的版本中加密規則是mysql_native_password,而在mysql8以後,加密規則是caching_sha2_password
一、修改加密規則 ALTER USER 'root'@'%' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; 二、更新一下用戶的密碼 ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '要修改的密碼'; 三、刷新權限 FLUSH PRIVILEGES;