wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.18-el7-x86_64.tar.gz
1、建立mysql用戶
# groupadd -r mysql
# useradd -g mysql -r -M -s /sbin/nologin mysql //這個mysql用戶不能登錄
2、解壓安裝
# tar zxvf mysql-8.0.18-el7-x86_64.tar.gz
# mv mysql-8.0.18-el7-x86_64 /mnt/local/mysql
3、修改目錄權限
# cd /mnt/local/mysql/
# chown -R mysql:mysql ./ //修改當前目錄爲mysql用戶
# mkdir -p /mnt/data/mysql
# chown -R mysql:mysql /mnt/data/mysql
# chown -R mysql:mysql /mnt/data/mysql/.
4、開始安裝
# cd /mnt/local/mysql/bin
# ./mysqld --initialize --user=mysql --basedir=/mnt/local/mysql --datadir=/mnt/data/mysql/
如果報:
./mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory
解決辦法爲:
yum -y install numactl
如果報:
./mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
解決辦法爲:
yum install libaio-devel.x86_64
5、編輯my.cnf
vim /etc/my.cnf
[mysqld]
basedir=/mnt/local/mysql
datadir=/mnt/data/mysql
socket=/tmp/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci
port = 3369
max_connections=5000
wait_timeout=70
interactive_timeout=70
slow_query_log = 1
long-query-time = 1.0
slow_query_log_file = /mnt/logs/mysql/slow.log
sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
default-authentication-plugin=mysql_native_password
[mysql]
default-character-set = utf8mb4
[client]
port=3369
max_allowed_packet=500M
socket=/tmp/mysql.sock
[mysqld_safe]
log-error=/mnt/logs/mysql/error.log
pid-file=/var/run/mariadb/mariadb.pid
!includedir /etc/my.cnf.d
6、設置my.cnf相關的目錄的權限
# mkdir -p /mnt/logs/mysql/
# chown -R mysql:mysql /mnt/logs/mysql/.
# touch /mnt/logs/mysql/error.log
# chmod -R 777 /mnt/logs/mysql/error.log
# touch /mnt/logs/mysql/slow.log
# chmod -R 777 /mnt/logs/mysql/slow.log
7、爲mysql配置環境變量
vim /etc/profile // 打開profile文件,在文件末尾添加下面三行
export MYSQL_HOME
MYSQL_HOME=/mnt/local/mysql
export PATH=$PATH:$MYSQL_HOME/lib:$MYSQL_HOME/bin
執行:source /etc/profile
創建軟連接
# ln -s /mnt/local/mysql/bin/mysql /usr/bin/mysql
Tip:刪除軟連接:rm -rf mysql,不要帶/,否則會將源文件刪除掉
8、設置爲開機自啓動項。
# cp /mnt/local/mysql/support-files/mysql.server /etc/init.d/mysql
# chmod +x /etc/init.d/mysql //添加可執行權限。
# chkconfig --add mysql // 註冊啓動服務
輸入chkconfig --list //查看是否添加成功
啓動:service mysql start
停止:service mysql stop
重啓:service mysql restart
說明:basedir如果指定不是/usr/local/mysql目錄則啓動mysql時可能會報(在本次安裝mysql8.0.18地未遇到,在之前遇到過):
# service mysql start
/etc/init.d/mysql: line 239: my_print_defaults: command not found
/etc/init.d/mysql: line 259: cd: /usr/local/mysql: No such file or directory
Starting MySQLCouldn't find MySQL server (/usr/local/mysql/[FAILED]ld_safe)
解決辦法:
由上面可知mysql的tar.gz安裝包的默認安裝目錄爲/usr/local/mysql, 這時候我們需要修改/support-files/mysql.server文件的basedir和datadir目錄路徑爲我們環境所在的mysql的basedir和datadir路徑, 如下:
# vim /etc/init.d/mysql
--------------------------
...
basedir=/mnt/local/mysql
datadir=/mnt/data/mysql
...
--------------------------
mysql -u root -p //登錄進入mysql,然後提示輸入密碼並讓修改系統自動生成的密碼
mysql8設置用戶新密碼方式
> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your password';
> FLUSH PRIVILEGES
設置允許root遠程訪問(慎用)
> use mysql
mysql> select host,user from user;
mysql> update user set host='%' where host = 'localhost';
mysql> FLUSH PRIVILEGES;