Linux如何安裝mysql8.0

了解Linux如何安裝MySQL 8.0?這個問題可能是我們?nèi)粘W(xué)習(xí)或工作經(jīng)常見到的。希望通過這個問題能讓你收獲頗深。下面是小編給大家?guī)淼膮⒖純?nèi)容,讓我們一起來看看吧!

創(chuàng)新互聯(lián)專注于湘鄉(xiāng)網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠為您提供湘鄉(xiāng)營銷型網(wǎng)站建設(shè),湘鄉(xiāng)網(wǎng)站制作、湘鄉(xiāng)網(wǎng)頁設(shè)計(jì)、湘鄉(xiāng)網(wǎng)站官網(wǎng)定制、成都小程序開發(fā)服務(wù),打造湘鄉(xiāng)網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供湘鄉(xiāng)網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。

經(jīng)過一番努力下載mysql文件,我們可以開始Mysql8.0的安裝了。

解壓文件

// 解壓文件生成兩個xz格式的壓縮文件
$ tar -xvf mysql-8.0.13-linux-glibc2.12-x86_64.tar
mysql-router-8.0.13-linux-glibc2.12-x86_64.tar.xz
mysql-test-8.0.13-linux-glibc2.12-x86_64.tar.xz
// 我們需要先刪掉/移除原有文件,才可以繼續(xù)解壓,因?yàn)榻鈮撼鰜淼?tar文件和.tar.xz文件重名
mv mysql-8.0.13-linux-glibc2.12-x86_64.tar ../
xz -d mysql-router-8.0.13-linux-glibc2.12-x86_64.tar.xz
tar -xvf mysql-8.0.13-linux-glibc2.12-x86_64.tar
// 為了方便查找,改個名字
mv mysql-8.0.13-linux-glibc2.12-x86_64.tar mysql8

環(huán)境配置

我們需要專門的mysql進(jìn)程啟動用戶和權(quán)限管理:

// 創(chuàng)建mysql系統(tǒng)用戶和用戶組
useradd -r mysql
// 給予安裝目錄mysql權(quán)限
chown mysql:mysql -R mysql8

配置自己的mysql配置文件,因?yàn)槲矣卸鄠€Mysql庫,我手動指定很多參數(shù):

[client]
socket=/home/work/lnmp/mysql8/tmp/mysql.sock
default-character-set=utf8

[mysql]
basedir=/home/work/lnmp/mysql8/
datadir=/home/work/lnmp/mysql8/data/
socket=/home/work/lnmp/mysql8/tmp/mysql.sock
port=3306
user=mysql
# 指定日志時間為系統(tǒng)時間
log_timestamps=SYSTEM
log-error=/home/work/lnmp/mysql8/log/mysql.err
# 指定字符集為utf8,因?yàn)閙ysql8.0中的默認(rèn)字符集為utfmb4,會和其他程序引起兼容性問題
default-character-set=utf8

[mysqld]
basedir=/home/work/lnmp/mysql8/
datadir=/home/work/lnmp/mysql8/data/
socket=/home/work/lnmp/mysql8/tmp/mysql.sock
port=3306
user=mysql
log_timestamps=SYSTEM
collation-server = utf8_unicode_ci
character-set-server = utf8
# 指定默認(rèn)認(rèn)證的加密方式,mysql8.0中默認(rèn)方式為caching_sha2_password,引起老版本兼容性問題
default_authentication_plugin= mysql_native_password

[mysqld_safe]
log-error=/home/work/lnmp/mysql8/log/mysqld_safe.err
pid-file=/home/work/lnmp/mysql8/tmp/mysqld.pid
socket=/home/work/lnmp/mysql8/tmp/mysql.sock

[mysql.server]
basedir=/home/work/lnmp/mysql8
socket=/home/work/lnmp/mysql8/tmp/mysql.sock

[mysqladmin]                                                                                                                                  
socket=/home/work/lnmp/mysql8/tmp/mysql.sock

這個里面我指定了錯誤日志的路徑,在接下來的操作中,如果出現(xiàn)錯誤,除了查看終端顯示的錯誤,還要記得去錯誤日志里查看詳細(xì)的信息。

因?yàn)槲抑付艘恍┪募?,所以需要提前?chuàng)建:

mkdir log
touch log/mysql.err
touch log/mysqld_safe.err
mkdir tmp
chown mysql:mysql -R ../*

數(shù)據(jù)庫初始化

如果我們不初始化,直接使用bin/mysqld_safe啟動會報(bào)錯,因?yàn)槲覀冃枰跏蓟痬ysql環(huán)境,此時參考文章:

$ bin/mysqld --initialize --user=mysql --basedir=/home/work/lnmp/mysql8/ --datadir=/home/work/lnmp/mysql8/data/
2018-12-13T06:15:03.159123Z 0 [System] [MY-013169] [Server] /home/work/lnmp/mysql8/bin/mysqld (mysqld 8.0.13) initializing of server in progress as process 1190
2018-12-13T06:15:05.255817Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: !/7oy-u%(XfZ
2018-12-13T06:15:06.135143Z 0 [System] [MY-013170] [Server] /home/work/lnmp/mysql8/bin/mysqld (mysqld 8.0.13) initializing of server has completed

提示中提示我們已經(jīng)創(chuàng)建了root的用戶和一個臨時密碼,同時初始化成功。

啟動數(shù)據(jù)庫

這時根據(jù)官方文檔我們使用mysqld_safe 命令來啟動:

$ bin/mysqld_safe
2018-12-13T06:16:58.604154Z mysqld_safe Logging to '/home/work/lnmp/mysql8/log/mysql.err'.
2018-12-13T06:16:58.629249Z mysqld_safe Starting mysqld daemon with databases from /home/work/lnmp/mysql8/data

打開數(shù)據(jù)庫

數(shù)據(jù)庫進(jìn)程已經(jīng)啟動,我們可以在新終端正常使用mysql數(shù)據(jù)庫了:

$ ps aux | grep mysql 
root      2141  0.0  0.0 815844  5328 pts/0    S+   14:16   0:00 /bin/sh bin/mysqld_safe
mysql     2319  1.0  0.5 1997492 374448 pts/0  Sl+  14:16   0:00 /home/work/lnmp/mysql8/bin/mysqld --basedir=/home/work/lnmp/mysql8/ --datadir=/home/work/lnmp/mysql8/data --plugin-dir=/home/work/lnmp/mysql8//lib/plugin --user=mysql --log-error=/home/work/lnmp/mysql8/log/mysql.err --pid-file=/home/work/lnmp/mysql8/tmp/mysqld.pid --socket=/home/work/lnmp/mysql8/tmp/mysql.sock --port=3306
work     25258  0.0  0.0 105356   824 pts/1    S+   14:18   0:00 grep mysql

但是直接使用mysql命令報(bào)錯:

$ bin/mysql -uroot
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

根據(jù)mysql.sock的作用的說明,我們指定mysql.sock路徑即可:

bin/mysql -S /home/work/lnmp/mysql8/tmp/mysql.sock -h localhost -uroot -p
Enter password:

修改初始密碼

我們打開數(shù)據(jù)庫后使用任何命令會提示我們修改初始的臨時密碼:

mysql> show databases;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

修改密碼:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
Query OK, 0 rows affected (0.05 sec)

重新連接,新密碼生效。

鏈接全局命令

此時,我們調(diào)用mysql只能用路徑/home/work/lnmp/mysql8/bin/mysql或相對路徑,需要鏈接為全局命令:

$ ln -s /home/work/lnmp/mysql8/bin/mysql /usr/bin/
$ ln -s /home/work/lnmp/mysql8/bin/mysql_safe /usr/bin/

指定socket文件

在8.0這個版本,我嘗試了很多方法試圖在my.cnf中修改mysql命令查詢的默認(rèn)socket路徑,依然不成功,所以只好在默認(rèn)路徑里面鏈接socket文件了:

ln -s /home/work/lnmp/mysql8/tmp/mysql.sock /tmp/

然后我們再調(diào)用mysql命令就不會報(bào)錯了。

重啟數(shù)據(jù)庫

在過程中我們調(diào)試參數(shù)可能需要重啟數(shù)據(jù)庫:

// 殺死進(jìn)程,相當(dāng)于停止
cat tmp/mysqld.pid | xargs kill
// 正常啟動mysql
bin/mysqld_safe  --defaults-file=/home/work/lnmp/mysql8/my.cnf

新增用戶&賦予權(quán)限

在mysql8里,我創(chuàng)建用戶并賦值,結(jié)果報(bào)錯:

mysql > grant all privileges on *.* to root@localhost indentified by '123456';
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'indentified by '123456'' at line 1

根據(jù)網(wǎng)上資料,是由于Mysql8將創(chuàng)建賬戶和賦予權(quán)限的操作分開了:

// 創(chuàng)建賬戶
create user '用戶名'@'訪問主機(jī)' identified by '密碼';
// 賦予權(quán)限(修改權(quán)限時在后面加with grant option)
grant 權(quán)限列表 on 數(shù)據(jù)庫 to '用戶名'@'訪問主機(jī)' ;
// 刷新權(quán)限
flush privileges;

感謝各位的閱讀!看完上述內(nèi)容,你們對Linux如何安裝mysql 8.0大概了解了嗎?希望文章內(nèi)容對大家有所幫助。如果想了解更多相關(guān)文章內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

文章標(biāo)題:Linux如何安裝mysql8.0
標(biāo)題來源:http://muchs.cn/article34/jpicpe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT定制網(wǎng)站、營銷型網(wǎng)站建設(shè)、網(wǎng)站策劃動態(tài)網(wǎng)站、做網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司