一、下載Mysql
下載地址:https://downloads.mysql.com/archives/community/
二、環境配置
檢測系統是否自帶Mysql
# rpm -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
# rpm -e --nodeps mariadb-5.5.64-1.el7.x86_64
# rpm -e --nodeps mariadb-server-5.5.64-1.el7.x86_64
用連接工具將下載的mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz上傳到linux服務器/data/software/的目錄下面
三、安裝
進入/data/software/目錄下解壓
# tar -zxvf mysql-5.7.28.tar.gz
解壓完成后重命名
# mv mysql-5.7.28-linux-glibc2.12-x86_64 mysql-5.7.28
# mv mysql-5.7.28 /usr/local/
檢查mysql組和用戶是否存在,如果沒有則創建
cat /etc/group|grep mysql
groupadd mysql
useradd -r -g mysql mysql #useradd -r參數表示mysql用戶是系統用戶,不可用於登錄系統
安裝數據庫
創建data目錄
cd
/usr/local/mysql-5.7.28
mkdir data
將/usr/local/mysql-5.7.28的所有者及所屬組改為mysql
# chown -R mysql.mysql /usr/local/mysql-5.7.28
在/usr/local/mysql-5.7.28/support-files目錄下創建my_default.cnf
# vim my_default.cnf
[mysqld]
#設置mysql的安裝目錄
basedir =/usr/local/mysql-5.7.28
#設置mysql數據庫的數據存放目錄
datadir = /usr/local/mysql-5.7.28/data
#設置端口
port = 3306
socket = /tmp/mysql.sock
#設置字符集
character-set-server=utf8
#日志存放目錄
log-error = /usr/local/mysql-5.7.28/data/mysqld.log
pid-file = /usr/local/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=/usr/local/mysql-5.7.28/ --datadir=/usr/local/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 /usr/local/mysql-5.7.28/data/mysqld.log,藍框里的是臨時密碼
把啟動腳本放到開機初始化目錄
cp support-files/mysql.server /etc/init.d/mysql
啟動mysql
service mysql start
進入mysql並更改密碼
cd /usr/local/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
注:如果報以下錯誤
解決方法:修改MySQL的配置文件,
1、windows下找到MySQL的安裝目錄的my.ini文件,修改其中的配置為不啟動ONLY_FULL_GROUP_BY模式
刪掉帶有ONLY_FULL_GROUP_BY的模式就ok了,如果沒有找到my.ini文件。
去系統的隱藏文件夾查看,在某個盤下輸入%ProgramData%然后搜索MySQL的my.ini文件
2、linux下找到my.cnf文件,這個是配置MySQL的文件。一般這個文件是在etc文件夾下。
vi my.cnf 編輯這個文件,然后在圖示的位置上加入sql_mode =
"STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FO
R_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER"
然后重啟MySQL服務:service mysql restart