下載鏈接
https://dev.mysql.com/downloads/mysql/
選擇 Linux-Generic All
解壓移動
tar -Jxf mysql-8.0.18-linux-glibc2.12-x86_64.tar.xz
mv mysql-8.0.18-linux-glibc2.12-x86_64 /opt/mysql/mysql-8-0-18
軟鏈
ln -s /opt/mysql/mysql-8-0-18 /usr/local/mysql
創(chuàng)建mysql實(shí)例用戶及文件
useradd mysql // 創(chuàng)建用戶
mkdir -p /data/mysql/mysql{3306,3307}/tmp // 創(chuàng)建文件
chown mysql.mysql -R /opt/mysql/ // 修改專用目錄的屬主及屬組
chown mysql.mysql -R /data/mysql // 修改專用目錄的屬主及屬組
配置MySQL的my.cnf配置文件
vim /data/mysql/mysql3306/my3306.cnf 配置文件
[client]
port= 3306
socket= /data/mysql/mysql3306/mysql.sock
[mysqld]
#Mysql服務(wù)的唯一編號 每個mysql服務(wù)Id需唯一
server-id = 3306
#服務(wù)端口號 默認(rèn)3306
port = 3306
#mysql安裝根目錄
basedir = /usr/local/mysql
#mysql數(shù)據(jù)文件所在位置
datadir =/data/mysql/mysql3306/data
#pid
pid-file = /data/mysql/mysql3306/mysql.pid
#設(shè)置socke文件所在目錄
socket = /data/mysql/mysql3306/mysql.sock
#設(shè)置臨時目錄
tmpdir = /data/mysql/mysql3306/tmp
# 用戶
user = mysql
# 允許訪問的IP網(wǎng)段
bind-address = 0.0.0.0
# 跳過密碼登錄
#skip-grant-tables
#主要用于MyISAM存儲引擎,如果多臺服務(wù)器連接一個數(shù)據(jù)庫則建議注釋下面內(nèi)容
skip-external-locking
#只能用IP地址檢查客戶端的登錄,不用主機(jī)名
skip_name_resolve = 1
#事務(wù)隔離級別,默認(rèn)為可重復(fù)讀,mysql默認(rèn)可重復(fù)讀級別(此級別下可能參數(shù)很多間隙鎖,影響性能)
transaction_isolation = READ-COMMITTED
#數(shù)據(jù)庫默認(rèn)字符集,主流字符集支持一些特殊表情符號(特殊表情符占用4個字節(jié))
character-set-server = utf8mb4
#數(shù)據(jù)庫字符集對應(yīng)一些排序等規(guī)則,注意要和character-set-server對應(yīng)
collation-server = utf8mb4_general_ci
#設(shè)置client連接mysql時的字符集,防止亂碼
init_connect='SET NAMES utf8mb4'
#是否對sql語句大小寫敏感,1表示不敏感
lower_case_table_names = 1
#最大連接數(shù)
max_connections = 400
#最大錯誤連接數(shù)
max_connect_errors = 1000
#TIMESTAMP如果沒有顯示聲明NOT NULL,允許NULL值
explicit_defaults_for_timestamp = true
#SQL數(shù)據(jù)包發(fā)送的大小,如果有BLOB對象建議修改成1G
max_allowed_packet = 128M
#MySQL連接閑置超過一定時間后(單位:秒)將會被強(qiáng)行關(guān)閉
#MySQL默認(rèn)的wait_timeout 值為8個小時, interactive_timeout參數(shù)需要同時配置才能生效
interactive_timeout = 1800
wait_timeout = 1800
#內(nèi)部內(nèi)存臨時表的最大值 ,設(shè)置成128M。
#比如大數(shù)據(jù)量的group by ,order by時可能用到臨時表,
#超過了這個值將寫入磁盤,系統(tǒng)IO壓力增大
tmp_table_size = 134217728
max_heap_table_size = 134217728
實(shí)例化數(shù)據(jù)庫
/usr/local/mysql/bin/mysqld --defaults-file=/data/mysql/mysql3306/my3306.cnf --initialize-insecure // 無密碼實(shí)例化配置
/usr/local/mysql/bin/mysqld --defaults-file=/data/mysql/mysql3306/my3306.cnf --initialize // 有密碼實(shí)例化
二進(jìn)制安裝mysql初始化出現(xiàn):Installing MySQL system tables.../usr/local/mysql/bin/mysqld: error while loading shared
原因:缺少libaio庫文件
解決方法:
yum install libaio* -y
yum install numactl -y
SLL連接(這一步是可以省略,其實(shí)我也不知道有什么用的。(* ̄︶ ̄))
/usr/local/mysql/bin/mysql_ssl_rsa_setup --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/mysql3306/data
啟動數(shù)據(jù)庫服務(wù)
/usr/local/mysql/bin/mysqld --defaults-file=/data/mysql/mysql3306/my3306.cnf 2>&1 > /dev/null & // 無提示啟動
/usr/local/mysql/bin/mysqld --defaults-file=/data/mysql/mysql3306/my3306.cnf &
連接數(shù)據(jù)庫
/usr/local/mysql/bin/mysql -uroot -S /data/mysql/mysql3306/mysql.sock // 無密碼連接
/usr/local/mysql/bin/mysql -uroot -p'wruCDa+3dXC_' -S /data/mysql/mysql3306/mysql.sock
可以軟鏈到 /usr/bin 中
ln -s /usr/local/mysql/bin/mysql /usr/bin/
或
ln -s /opt/mysql/mysql-8-0-18/bin/mysql /usr/bin/
建議使用第一個軟鏈,這樣mysql版本迭代就可以直接使用,第二個就要重新進(jìn)行軟鏈。
修改密碼
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
使修改生效
flush privileges;
關(guān)閉數(shù)據(jù)庫服務(wù)
/usr/local/mysql/bin/mysqladmin -uroot -S /data/mysql/mysql3306/mysql.sock shutdown // 無密碼
/usr/local/mysql/bin/mysqladmin -uroot -p'123456' -S /data/mysql/mysql3306/mysql.sock shutdown
3307的實(shí)例可以創(chuàng)建新的 my3307.cnf 配置文件修改 3306 為 3307 ,然后按 實(shí)例化數(shù)據(jù)庫 開始操作
sed -i 's/3306/3307/g' /data/mysql/mysql3307/my3307.cnf