日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

linux 安装mysql 8.0_Linux安装mysql 8.0的详细方法介绍(代码示例)

發布時間:2023/12/3 数据库 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux 安装mysql 8.0_Linux安装mysql 8.0的详细方法介绍(代码示例) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本篇文章給大家帶來的內容是關于Linux安裝mysql 8.0的詳細方法介紹(代碼示例),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

經過一番努力下載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

// 我們需要先刪掉/移除原有文件,才可以繼續解壓,因為解壓出來的.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

環境配置

我們需要專門的mysql進程啟動用戶和權限管理:// 創建mysql系統用戶和用戶組

useradd -r mysql

// 給予安裝目錄mysql權限

chown mysql:mysql -R mysql8

配置自己的mysql配置文件,因為我有多個Mysql庫,我手動指定很多參數:[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

# 指定日志時間為系統時間

log_timestamps=SYSTEM

log-error=/home/work/lnmp/mysql8/log/mysql.err

# 指定字符集為utf8,因為mysql8.0中的默認字符集為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

# 指定默認認證的加密方式,mysql8.0中默認方式為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

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

因為我指定了一些文件,所以需要提前創建:mkdir log

touch log/mysql.err

touch log/mysqld_safe.err

mkdir tmp

chown mysql:mysql -R ../*

數據庫初始化

如果我們不初始化,直接使用bin/mysqld_safe啟動會報錯,因為我們需要初始化mysql環境,此時參考文章:$ 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

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

啟動數據庫

這時根據官方文檔我們使用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

打開數據庫

數據庫進程已經啟動,我們可以在新終端正常使用mysql數據庫了:$ 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命令報錯:$ bin/mysql -uroot

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

根據mysql.sock的作用的說明,我們指定mysql.sock路徑即可:bin/mysql -S /home/work/lnmp/mysql8/tmp/mysql.sock -h localhost -uroot -p

Enter password:

修改初始密碼

我們打開數據庫后使用任何命令會提示我們修改初始的臨時密碼: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)

重新連接,新密碼生效。

鏈接全局命令

此時,我們調用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命令查詢的默認socket路徑,依然不成功,所以只好在默認路徑里面鏈接socket文件了:ln -s /home/work/lnmp/mysql8/tmp/mysql.sock /tmp/

然后我們再調用mysql命令就不會報錯了。

重啟數據庫

在過程中我們調試參數可能需要重啟數據庫:// 殺死進程,相當于停止

cat tmp/mysqld.pid | xargs kill

// 正常啟動mysql

bin/mysqld_safe --defaults-file=/home/work/lnmp/mysql8/my.cnf

新增用戶&賦予權限

在mysql8里,我創建用戶并賦值,結果報錯: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

根據網上資料,是由于Mysql8將創建賬戶和賦予權限的操作分開了:// 創建賬戶

create user '用戶名'@'訪問主機' identified by '密碼';

// 賦予權限(修改權限時在后面加with grant option)

grant 權限列表 on 數據庫 to '用戶名'@'訪問主機' ;

// 刷新權限

flush privileges;

總結

經過解壓文件,創建mysql用戶和用戶組,配置my.cnf配置文件,修改權限,數據庫初始化、啟動,打開數據庫,修改初始密碼,鏈接全局命令和指定socket文件路徑,所有的安裝工作都已經完成了。

總結

以上是生活随笔為你收集整理的linux 安装mysql 8.0_Linux安装mysql 8.0的详细方法介绍(代码示例)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。