文章目錄
0 前言
網上已經有那麼多的關於CentOS 7如何安裝MySQL的文章了,但是很多都是在線安裝;由於很多時候,在生產環境進行部署時,生產機器都是不可能直接連公網的,導致網上很多的文章沒有借鑑意義;
1 下載
在有網的環境下載 mysql 的安裝包:
http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.20-linux-glibc2.12-x 86_64.tar.gz
或者去官網點擊下載:
並把 安裝包mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz
拷貝到 離線生產環境/usr/local
目錄下。
2 安裝
2.1 創建用戶
爲了方便數據庫管理,對於安裝的MySQL數據庫,生產上我們都會建立一個mysql用戶和mysql用戶組:
# 添加mysql用戶組
groupadd mysql
# 添加mysql用戶
useradd -g mysql mysql -d /home/mysql
# 修改mysql用戶的登陸密碼
passwd mysql
2.2 解壓縮
在/usr/local/中解壓壓縮包,並改名爲mysql
cd /usr/local/
tar -xzvf /data/software/mysql-5.7.13-linux-glibc2.5-x86_64.tar.gz (我的下載目錄爲 data/software)
# 改名爲mysql
mv mysql-5.7.13-linux-glibc2.5-x86_64 mysql
並賦予用戶讀寫權限(此處也可以換位你的用戶)
chown -R mysql:mysql mysql/
2.3 創建配置文件
vim /etc/my.cnf
複製以下內容:
[client]
port = 3306
socket = /tmp/mysql.sock
[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
#不區分大小寫
lower_case_table_names = 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
max_connections=5000
default-time_zone = '+8:00'
2.4 初始化文件
- 初始化log文件,防止沒有權限。
#手動編輯一下日誌文件,什麼也不用寫,直接保存退出
cd /var/log/
vim mysqld.log
:wq
chmod 777 mysqld.log
chown mysql:mysql mysqld.log
- 初始化pid文件,防止沒有權限。
#手動編輯一下日誌文件,什麼也不用寫,直接保存退出
cd /var/run/
mkdir mysqld
cd mysqld
vi mysqld.pid
:wq
# 給權限
cd ..
chmod 777 mysqld
chown -R mysql:mysql /mysqld
- 初始化數據庫
# 初始化數據庫,並指定啓動mysql的用戶,否則就會在啓動MySQL時出現權限不足的問題
/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --lc_messages_dir=/usr/local/mysql/share --lc_messages=en_US
初始化完成後,在my.cnf
中配置的datadir
目錄(/var/log/mysqld.log
)下生成一個error.log
文件,裏面記錄了root
用戶的隨機密碼。
cat /var/log/mysqld.log
執行後記錄最後一點:root@localhost: xxxxx
。 這裏的xxxxx
就是初始密碼。
2.5 啓動數據庫
啓動數據庫
#源目錄啓動:
/usr/local/mysql/support-files/mysql.server start
並設置開機自啓動服務:
# 複製啓動腳本到資源目錄
cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld
# 增加mysqld服務控制腳本執行權限
chmod +x /etc/rc.d/init.d/mysqld
# 將mysqld服務加入到系統服務
chkconfig --add mysqld
# 檢查mysqld服務是否已經生效
chkconfig --list mysqld
# 切換至mysql用戶,啓動mysql,或者稍後下一步再啓動。
service mysqld start
從此就可以使用service mysqld命令啓動/停止服務:
su mysql
service mysqld start/stop/restart
2.6 配置環境變量
爲了更好的操作mysql,配置環境變量。
# 切換至mysql用戶
su mysql
vi .bash_profile
# 修改配置文件,增加export PATH=$PATH:/usr/local/mysql/bin
# 立即生效
source .bash_profile
2.7 登陸,修改密碼
必須修改初始的隨機密碼:
# 系統默認會查找/usr/bin下的命令;建立一個鏈接文件。
ln -s /usr/local/mysql/bin/mysql /usr/bin
# 登陸mysql的root用戶
mysql -uroot -p
# 輸入2.4生成的 隨機密碼
# 修改root用戶密碼爲123456
set password for root@localhost=password("123456");
3 使用mysql
3.1 用戶建立
以下命令只需要改動 用戶名 和密碼:
grant all privileges on *.* to '新用戶名'@'%' identified by '新密碼';
flush privileges;
其中通配符%表示讓該用戶可以從任意遠程主機登陸。
3.2 創建數據庫
登陸用戶後:
# 查詢現有的數據庫:
show databases;
# 創建
CREATE DATABASE 數據庫名;
# 進入數據庫:
use 數據庫名;
# 查看所有的表
show tables;
# 退出:
exit
參考文獻:
- 《CentOS 7離線安裝MySQL 5.7》https://www.jellythink.com/archives/14
- 《linux 安裝MySql 5.7.20 操作步驟【親測】》https://segmentfault.com/a/1190000012703513