1. 下載 MySQL
本文采用的Linux為是騰訊云 標(biāo)準(zhǔn)型S2 (1 核 1 GB) Centos 7.5 64位
1.1 官網(wǎng)下載地址:
https://dev.mysql.com/downloads/mysql/5.7.html#downloads
1.2 選擇64位的
1.3 說明
該文檔僅供參考,更多詳細(xì)文檔請(qǐng)查看官方文檔
https://dev.mysql.com/doc/refman/5.7/en/binary-installation.html
2. 上傳文件并解壓到安裝目錄
2.1 使用xftp上傳到指定目錄 我的目錄為
/app/tool
2.2 解壓
tar -zvxf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
2.3 重命名
mv mysql-5.7.24-linux-glibc2.12-x86_64 mysql
2.4 復(fù)制到指定目錄
cp -r mysql /usr/local/
3. 添加用戶組,用專門管理mysql窍仰,提高安全
3.1 新建組
groupadd mysql
3.2 新建用戶
useradd -r -g mysql mysql
4. 修改mysql目錄權(quán)限
4.1 進(jìn)入mysql根目錄
cd /usr/local/mysql/
4.2 修改擁有者為mysql用戶
chown -R mysql:mysql ./
5. 配置mysql服務(wù)
5.1 將mysql/support-files下的mysql.server 復(fù)制到 /etc/init.d/下并自定義為mysql
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
5.2 修改該服務(wù)
vi /etc/init.d/mysql
5.3 修改的內(nèi)容
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
6. 配置mysql的配置文件
在/etc/ 下新建my.cnf ,有些可能會(huì)提示已經(jīng)存在块请,因?yàn)槟J(rèn)裝的數(shù)據(jù)庫配置文件也在亡呵,直接覆蓋就行
6.1 進(jìn)入etc目錄
cd /etc
6.2 刪除my.cnf
rm -rf my.cnf
6.3 新建my.cnf
vi my.cnf
6.4 編輯的內(nèi)容
# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
# *** default location during install, and will be replaced if you
# *** upgrade to a newer version of MySQL.
[client]
port = 3306
default-character-set=utf8
[mysqld]
# 一般配置選項(xiàng)
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
character-set-server=utf8
default_storage_engine = InnoDB
# NO_AUTO_VALUE_ON_ZERO 參數(shù)是允許自增id 從 0開始, 不設(shè)置這個(gè)參數(shù), 自增ID 從1開始
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
7. 初始化數(shù)據(jù)庫
7.1 進(jìn)入mysql/bin目錄下
cd /usr/local/mysql/bin/
7.2 執(zhí)行初始化
./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
7.3 遇到錯(cuò)誤
./mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory
7.4 執(zhí)行以下命令
yum -y install numactl.x86_64
7.5 再執(zhí)行初始化
./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
7.6 遇到錯(cuò)誤
./mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
7.7 執(zhí)行以下命令
yum -y install libaio
7.8 再執(zhí)行初始化
./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
7.9 執(zhí)行完畢后會(huì)自動(dòng)生成默認(rèn)的密碼在執(zhí)行記錄中拓颓,注意復(fù)制出來
8. 啟動(dòng)mysql服務(wù)
8.1 執(zhí)行啟動(dòng)命令
service mysql start
8.2啟動(dòng)成功會(huì)提示 SUCCESS
9. 登錄及遠(yuǎn)程配置
9.1 登錄
進(jìn)入mysql/bin目錄下執(zhí)行
./mysql -uroot -p
9.2 輸入密碼
Enter password:輸入默認(rèn)的臨時(shí)密碼
9.3 修改密碼
mysql> set password=password('新密碼');
9.4 設(shè)置遠(yuǎn)程訪問
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '訪問密碼';
mysql> flush privileges;
9.5 開放端口(云服務(wù)器需到控制臺(tái)處理)
9.5.1 開啟端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
9.5.2 重載防火墻
firewall-cmd --reload
10. 設(shè)置開機(jī)啟動(dòng)和環(huán)境變量(可以忽略)
10.1 查看自啟服務(wù)列表
chkconfig --list
10.2 添加mysql服務(wù)到自啟服務(wù)
chkconfig --add mysql
10.3 設(shè)置自啟
chkconfig mysql on
11. 環(huán)境變量
11.1 為了不用在mysql/bin目錄下才能連接mysql 將mysql/bin目錄設(shè)置到環(huán)境變量中
vi /etc/profile
11.2 在最后追加的內(nèi)容
# mysql environment
export MYSQL_HOME=/usr/local/mysql
export PATH=$PATH:$MYSQL_HOME/bin
11.3 更新環(huán)境變量
source /etc/profile
另外附上一些用戶權(quán)限相關(guān)操作的SQL語句
創(chuàng)建用戶
- 創(chuàng)建了一個(gè)名為:test 密碼為:1234 的用戶
mysql> create user 'test'@'localhost' identified by '1234';
查詢用戶
- 查詢用戶
mysql> select user,host from mysql.user;
刪除用戶
- 刪除用戶“test”
mysql> drop user test@localhost ;
- 若創(chuàng)建的用戶允許任何電腦登陸井辆,刪除用戶如下
mysql> drop user test@'%';
更改密碼
- 方法1关筒,密碼實(shí)時(shí)更新;修改用戶“test”的密碼為“1122”
mysql> set password for test =password('1122');
- 方法2杯缺,需要刷新;修改用戶“test”的密碼為“1234”
mysql> update mysql.user set password=password('1234') where user='test';
- 刷新
mysql> flush privileges;
授予權(quán)限
授予用戶test通過外網(wǎng)IP對(duì)數(shù)據(jù)庫“testdb”的全部權(quán)限
mysql> grant all privileges on 'testdb'.* to 'test'@'%' identified by '1234';
刷新權(quán)限
mysql> flush privileges;
授予用戶“test”通過外網(wǎng)IP對(duì)于該數(shù)據(jù)庫“testdb”中表的創(chuàng)建睡榆、修改萍肆、刪除權(quán)限,以及表數(shù)據(jù)的增刪查改權(quán)限
mysql> grant create,alter,drop,select,insert,update,delete on testdb.* to test@'%';
查看用戶權(quán)限
- 查看用戶“test”的相關(guān)權(quán)限
mysql> show grants for test;