編碼的世界 / 優質文選 / 歷史

mysql linux (glibc版)安裝記錄


2022年7月31日
-   

mysql linux glibc版安裝記錄

本文以ubuntu18.04、mysql-8.0.16-linux-glibc2.12-x86_64為例
一. 下載mysql
下載安裝包
wget -p /tmp https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.16-linux-glibc2.12-x86_64.tar.xz

解壓並移動至合適的文件夾
#創建文件夾並賦予權限
sudo mkdir -p /opt/enviroment/mysql
sudo chmod -R 777 /opt/enviroment/
#解壓安裝包並移動創建的目錄
tar -xf /tmp/mysql-8.0.16-linux-glibc2.12-x86_64.tar.xz
mv /tmp/mysql-8.0.16-linux-glibc2.12-x86_64 /opt/enviroment/mysql/
#創建一個鏈接目錄
sudo ln -s /opt/enviroment/mysql/mysql-8.0.16-linux-glibc2.12-x86_64 /usr/local/mysql

二. 安裝
為mysql創建用戶和組
sudo groupadd mysql
sudo useradd -r -g mysql -s /bin/false mysql

安裝
#初始化mysql數據庫
cd /usr/local/mysql/bin
./mysqld initialize user=mysql

控制台可能會輸出:mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory 如果報錯則需要安裝:libaio
#安裝libaio
sudo apt-get install libaio-dev

不同發行版可能會報不同的錯誤,根據報錯提示安裝對應缺失的庫即可。 再次執行初始化mysql的命令:mysqld initialize user=mysql,輸出一下內容:
2019-06-27T12:49:06.527888Z 0 [System] [MY-013169] [Server] /opt/environment/mysql/bin/mysqld (mysqld 8.0.16) initializing of server in progress as process 30216 2019-06-27T12:49:06.532284Z 0 [Warning] [MY-010122] [Server] One can only use the user switch if running as root 2019-06-27T12:49:09.406373Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: Oh=*DD!g&8AM注意上面加粗的字體,即root用戶的初始化密碼
服務啟動與停止
cd /usr/local/mysql/bin/
mysqld_safe user=mysql &
#也可以這樣啟動服務
mysql.servr start
#停止服務
mysql.servr stop

三. 配置mysql
修改密碼
登錄進入mysql命令行客戶端:
cd /usr/local/mysql/bin/
mysql -u root -p
#沒有更改過密碼時,鍵入初始化密碼(注意每個人可能都不一樣):Oh=*DD!g&8AM

執行如下sql:
替換為自己的密碼
ALTER USER 'root'@'localhost' IDENTIFIED BY '12345678';

開啟外網訪問
登錄進入mysql命令行客戶端:
cd /usr/local/mysql/bin/
mysql -u root -p

進入客戶端後執行如下SQL:
use mysql;
select user,host from user;
設置任何ip可訪問
update user set host='%' where user='root';
刷新設置
flush privileges;
exit;

記錄慢SQL
創建my.cnf文件
sudo mkdir /usr/local/mysql/etc
sudo vim /usr/local/mysql/etc/my.cnf

鍵入如下配置:
[mysqld]
#開啟慢日志[0:ON,1:OFF]
slow_query_log = 1
#慢日志存放位置
slow_query_log_file = /usr/local/mysql/data/query-slow.log
#慢查詢時間設置為1秒
long_query_time = 1
#優先用文件記錄
log_output = 'FILE,TABLE'
#記錄不走索引的SQL
#log_queries_not_using_indexes = 1
#最大連接數1000(老版本)
max_connections= 1000
#最大連接數1000(新版本)
mysqlx_max_connections = 1000
max_user_connections= 1000

熱門文章