一、下載Mysql
下載地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads
二、環境配置
檢測系統是否自帶Mysql
rmp -qa|grep mysql
如果有進行強行卸載
rpm -e --nodeps mysql-libs-5.1.52-1.el6_0.1.x86_64
檢測系統是否自帶mariadb
rpm -qa|grep mariadb
rpm -e --nodeps mariadb-libs-5.5.64-1.el7.x86_64
用連接工具將下載的mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz上傳到linux服務器的/opt/mysql目錄下面
三、安裝
進入/opt/mysql目錄下解壓
解壓完成后重命名
mv mysql-5.7.28-linux-glibc2.12-x86_64 mysql-5.7.28
檢查mysql組和用戶是否存在,如果沒有則創建
cat /etc/group|grep mysql
groupadd mysql
useradd -r -g mysql mysql #useradd -r參數表示mysql用戶是系統用戶,不可用於登錄系統
安裝數據庫
創建data目錄
cd /mysql-5.7.28
mkdir data
將/opt/mysql/mysql-5.7.28的所有者及所屬組改為mysql
在/opt/mysql/mysql-5.7.28/support-files目錄下創建my_default.cnf
[mysqld] #設置mysql的安裝目錄 basedir = /opt/mysql/mysql-5.7.28 #設置mysql數據庫的數據存放目錄 datadir = /opt/mysql/mysql-5.7.28/data #設置端口 port = 3306 socket = /tmp/mysql.sock #設置字符集 character-set-server=utf8 #日志存放目錄 log-error = /opt/mysql/mysql-5.7.28/data/mysqld.log pid-file = /opt/mysql/mysql-5.7.28/data/mysqld.pid #允許時間類型的數據為零(去掉NO_ZERO_IN_DATE,NO_ZERO_DATE) sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION #ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
拷貝,是否覆蓋,是
cp my_default.cnf /etc/my.cnf
初始化Mysql
./bin/mysqld --initialize --user=mysql --basedir=/opt/mysql/mysql-5.7.28/ --datadir=/opt/mysql/mysql-5.7.28/data/
如果報錯:./bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or 就安裝libaio,如果沒有則跳過
yum install libaio
初始化完成之后查看日志
cat /opt/mysql/mysql-5.7.28/data/mysqld.log,紅框里的是臨時密碼
把啟動腳本放到開機初始化目錄
cp support-files/mysql.server /etc/init.d/mysql
啟動mysql
service mysql start
進入mysql並更改密碼
cd /opt/mysql/mysql-5.7.28
./bin/mysql -u root -p
mysql> set password=password('123456');
mysql> grant all privileges on *.* to root@'%' identified by '123456';
mysql> flush privileges;
添加遠程訪問權限
mysql> use mysql;
mysql> update user set host='%' where user = 'root';
mysql> flush privileges;
如果更改時報錯:ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY',就先查詢一下是否已更改,最后執行刷新。
重啟mysql生效
service mysql restart