首頁 > 軟體

Linux環境下安裝MySQL8.0的完整步驟

2022-08-05 18:03:28

前言

搞了一臺雲伺服器,首先要乾的活就是得安裝資料庫,在Windows下安裝不用說,傻瓜式操作,在Linux上安裝少說要記錄一下。

我使用的是XShell7 ssh 連線工具存取的Linux,其他工具的用法和命令都一樣,介面如下:

在這裡我使用的不是root使用者登入的,所以先切換到root使用者,命令:su

第一步:下載安裝設定

1.切換到 /usr/local/

cd /usr/local/

2.建立mysql資料夾

mkdir mysql

3.切換到mysql資料夾下

cd mysql

4.下載mysql8.0安裝包

wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz

等待下載成功

5.解壓mysql8.0安裝包

tar xvJf mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz 

6.重新命名解壓出來的資料夾,這裡改成mysql-8.0

mv mysql-8.0.20-linux-glibc2.12-x86_64 mysql-8.0

7.. /use/local/mysql-8.0資料夾下建立data資料夾 儲存檔案

mkdir data

8.分別建立使用者組以及使用者和密碼(如果提示已存在說明之前有建立過了)

  groupadd mysql
  
  useradd -g mysql mysql

9.授權剛剛新建的使用者

chown -R mysql.mysql /usr/local/mysql/mysql-8.0

chmod 750 /usr/local/mysql/mysql-8.0/data -R

10.設定環境,編輯/etc/profile檔案

注意:這裡有一個坑,在設定完環境變數後,需要執行sourc /etc/profile命令,使組態檔生效

vim /etc/profile
#--------------------------
#點選鍵盤上的i鍵,進入輸入模式,在組態檔最後增加一行:
#--------------------------
export PATH=$PATH:/usr/local/mysql/mysql-8.0/bin:/usr/local/mysql/mysql-8.0/lib
#新增完成後,按Esc鍵退出輸入模式,進入命令模式,輸入:wq,儲存並退出
#然後在輸入cat /etc/profile  檢視是否儲存成功,效果如下:↓↓↓↓↓↓

11.編輯my.cnf檔案

vi /etc/my.cnf
[mysql]
default-character-set=utf8mb4
[client]
#port=3306
socket=/var/lib/mysql/mysql.sock

[mysqld]
#port=3306
#server-id=3306
user=mysql
general_log = 1
general_log_file= /var/log/mysql/mysql.log
socket=/var/lib/mysql/mysql.sock
basedir=/usr/local/mysql/mysql-8.0
datadir=/usr/local/mysql/mysql-8.0/data
log-bin=/usr/local/mysql/mysql-8.0/data/mysql-bin
innodb_data_home_dir=/usr/local/mysql/mysql-8.0/data
innodb_log_group_home_dir=/usr/local/mysql/mysql-8.0/data/
character-set-server=utf8mb4
lower_case_table_names=1
autocommit=1
default_authentication_plugin=mysql_native_password
symbolic-links=0
# Disabling symbolic-links is recommended to prevent assorted security risks
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd

[mysqld_safe]
log-error=/usr/local/mysql/mysql-8.0/data/mysql.log
pid-file=/usr/local/mysql/mysql-8.0/data/mysql.pid

#
# include all files from the config directory

12.切換到/usr/local/mysql/mysql-8.0/bin目錄下

cd bin

13.初始化基礎資訊,得到資料庫的初始密碼(在/usr/local/mysql/mysql-8.0/bin目錄下執行)

./mysqld --user=mysql --basedir=/usr/local/mysql/mysql-8.0 --datadir=/usr/local/mysql//mysql-8.0/data/ --initialize
#初始化完成後,複製最後的初始密碼,儲存下來後面需要(這一步好像並沒有用)
#igTn=3j-

14.複製 mysql.server 檔案,在/usr/local/mysql/mysql-8.0目錄下執行

cp -a ./support-files/mysql.server /etc/init.d/mysql 

cp -a ./support-files/mysql.server /etc/init.d/mysqld

15.賦予許可權

chown 777 /etc/my.cnf

chmod +x /etc/init.d/mysql

chmod +x /etc/init.d/mysqld

16.檢查一下/var/lib/mysql是否存在,否則進行建立

mkdir /var/lib/mysql
chown -R mysql:mysql /var/lib/mysql/ 

17.啟動資料庫,有SUCCESS字眼說明MySQL安裝完成

service mysql start 
#出現SUCCESS 說明啟動成功,效果圖如下:

ps:

如果發現啟動失敗,可以先檢視data裡面的mysql.log,如果有提示3306這樣的字樣,第一個想到的應該是埠被佔用,使用lsof -i:埠號,檢視是哪個PID(程序號)佔用了該埠,然後使用kill PID(程序號)殺掉程序,重新執行service mysql start

第二步:修改密碼,並設定遠端連線(為了可以在別的機器下面連線該mysql)

在這一步最開始就浪費了我好大的時間。如果用之前的初始密碼登入,可能會出現以下的錯誤:

在這一步的時候,研究了好久,記錄一下處理過程:

  • 在 vim /etc/my.cnf檔案中,在[mysqld]的段中加上一句:skip-grant-tables --跳過密碼驗證
  • 然後儲存退出,重啟MySQL服務
  • 然後輸入mysql -uroot -p 敲兩下回車,進入mysql
  • USE mysql ; --進入資料庫
  • 在mysql8.0 中,這個更新語法不能用UPDATE user SET Password = password ( ‘new-password’ ) WHERE User = ‘root’ ; 使用這個:ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘新密碼’;
  • 最後按照下邊的步驟進行就可以了。

1.修改資料庫root賬號的密碼,並設定可以遠端存取(因為root預設是不能遠端存取的)

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密碼';

2.執行flush privileges; 使密碼生效

flush privileges;#重新整理許可權

3.選擇資料庫

use mysql;

4.再修改遠端連線並生效

mysql> create user 'root'@'%' identified by  'password';
Query OK, 0 rows affected (0.03 sec)
 
mysql> grant all privileges on *.* to 'root'@'%' with grant option;
Query OK, 0 rows affected (0.01 sec)
 
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

5.執行提交命令,搞定!

flush privileges;#重新整理許可權

總結

到此這篇關於Linux環境下安裝MySQL8.0的文章就介紹到這了,更多相關Linux安裝MySQL8.0內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com