mysql版本:mysql-5.7.22-linux-glibc2.12-x86_64
查看系統中是否已安裝mariadb 服務
rpm -qa | grep mariadb
卸載 mariadb及其依賴的包
yum -y remove mariadb-libs-5.5.44-2.el7.centos.x86_64
防火牆設置
查看防火牆狀態 systemctl status firewalld 關閉防火牆 systemctl stop firewalld 查看防火牆是否開機自啟 systemctl is-enabled firewalld.service;echo $? 禁止防火牆開機啟動 systemctl disable firewalld
上傳MySQL安裝文件
將mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz文件上傳到/usr/local/目錄下解壓 tar -zxvf mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz 將文件重命名 mv mysql-5.7.22-linux-glibc2.12-x86_64 mysql
添加用戶和組
groupadd mysql useradd mysql -g mysql
要是再Ubuntu下添加用戶、組,則使用如下命令:
useradd -d "/home/mysql" -m -s "/bin/bash" mysql
創建數據目錄並賦予權限
在系統根目錄下創建data目錄和mysql目錄
mkdir -p /data/mysql
授權並查看授權信息
chown mysql:mysql -R /data/mysql
配置my.cnf參數
在/etc目錄下創建my.cnf文件,並進行配置: [mysqld] basedir=/opt/software/mysql datadir=/data/mysql socket=/opt/software/mysql/mysql.sock user=mysql port=3306 character-set-server=utf8mb4 # cancle password skip-grant-tables # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid
[client]
port=3306
socket=/opt/software/mysql/mysql.sock
需要注意,創建的該文件不能是777權限,否則mysql會認為誰都能修改風險很高,配置的信息都會失效,直接提示[Warning] World-writable config file '/etc/my.cnf' is ignored.
初始化配置
/opt/software/mysql/bin/mysqld --defaults-file=/etc/my.cnf --basedir=/opt/software/mysql/ --datadir=/data/mysql/ --user=mysql --initialize
注意:如果是報錯或者重新初始化,需要清空/data/mysql/下的文件。
開啟服務
將mysql加入服務 cp /opt/software/mysql/support-files/mysql.server /etc/init.d/mysql 設置開機自啟 chkconfig mysql on 開啟數據庫服務 service mysql start
查看服務
chkconfig --list 看到對應服務名的3 4 5為open 或者 on 即可
修改密碼
/opt/software/mysql/bin/mysql -u root -p >>use mysql; >>update user set authentication_string=password('你的密碼') where user='root'; >>flush privileges; >>exit;
mysql8版本開始修改密碼命令,登錄mysql,不要執行use mysql;先執行修改密碼命令:ALTER
USER
"root"
@
"localhost"
IDENTIFIED
BY
"你的新密碼"
;
或者ALTER
USER
'root'
@
'localhost'
IDENTIFIED
WITH
mysql_native_password
BY
'密碼'
;
重啟mysql服務
service mysql restart
這是空密碼進入,修改好密碼之后,就用新的密碼登錄,同時將my.cnf文件中的skip-grant-tables注釋掉
[mysqld] basedir=/opt/software/mysql datadir=/data/mysql socket=/opt/software/mysql/mysql.sock user=mysql port=3306 character-set-server=utf8mb4 # cancle password #skip-grant-tables # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid
重啟mysql服務
service mysql restart
允許遠程連接
/opt/software/mysql/bin/mysql -u root -p >>use mysql; >>update user set host='%' where user = 'root'; >>flush privileges; >>exit;
配置mysql環境變量
ln -s /opt/software/mysql/bin/mysql /usr/bin