一:到mysql官網下載最新的mysql包 mysql-5.7.21-linux-glibc2.12-x86_64
二:在linux /usr/local/中解壓mysql壓縮包 改名為mysql
cd /usr/local/
tar -xzvf mysql壓縮包名
tar -xzvf mysql壓縮包名
三:創建用戶組mysql,創建用戶mysql並將其添加到用戶組mysql中,並賦予讀寫權限
groupadd mysql --創建mysql用戶組組
useradd -r -g mysql mysql --創建mysql用戶並添加到mysql用戶組中
chown -R mysql mysql/ --將mysql目錄訪問權限賦為myql用戶
chgrp -R mysql mysql/ --改變mysql目錄的用戶組屬於mysql組
注:
chmod 命令
用於改變文件或目錄的訪問權限。用戶用它控制文件或目錄的訪問權限。
chgrp命令
改變文件或目錄所屬的組。
-R處理指定目錄以及其子目錄下的所有文件
useradd -r -g mysql mysql --創建mysql用戶並添加到mysql用戶組中
chown -R mysql mysql/ --將mysql目錄訪問權限賦為myql用戶
chgrp -R mysql mysql/ --改變mysql目錄的用戶組屬於mysql組
注:
chmod 命令
用於改變文件或目錄的訪問權限。用戶用它控制文件或目錄的訪問權限。
chgrp命令
改變文件或目錄所屬的組。
-R處理指定目錄以及其子目錄下的所有文件
四:創建配置文件 保存並退出
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'
#復制以下內容
[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'
五:初始化數據庫
#先安裝一下這個東東,要不然初始化有可能會報錯
yum install libaio
#手動編輯一下日志文件,什么也不用寫,直接保存退出
cd /var/log/
vim mysqld.log
:wq
chmod 777 mysqld.log
chown mysql:mysql mysqld.log
/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
yum install libaio
#手動編輯一下日志文件,什么也不用寫,直接保存退出
cd /var/log/
vim mysqld.log
:wq
chmod 777 mysqld.log
chown mysql:mysql mysqld.log
/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
六:查看初始密碼
cat /var/log/mysqld.log
最后一行:root@localhost: 這里就是初始密碼
最后一行:root@localhost: 這里就是初始密碼
七:啟動服務,進入mysql,修改初始密碼,運行遠程連接
cd /var/run/
mkdir mysqld
chmod 777 mysqld
cd mysqld
vim mysqld.pid
chmod 777 mysqld.pid
chown mysql:mysql mysqld.pid
/usr/local/mysql/support-files/mysql.server start
/usr/local/mysql/bin/mysql -uroot -p 你在上面看到的初始密碼
mkdir mysqld
chmod 777 mysqld
cd mysqld
vim mysqld.pid
chmod 777 mysqld.pid
chown mysql:mysql mysqld.pid
/usr/local/mysql/support-files/mysql.server start
/usr/local/mysql/bin/mysql -uroot -p 你在上面看到的初始密碼
# 以下是進入數據庫之后的sql語句
1>重置密碼
alert 重置密碼:ALTER USER 'root'@'localhost' IDENTIFIED BY '新密碼';
2>查看初始化的用戶信息
select host,user from mysql.user;
select host,user from mysql.user;
3>修改root用的可以遠程鏈接(localhost-->%)
update mysql.user set host='%' where user='root';
4>刷新
flush privileges;
八:開機自動啟動
cd /usr/local/mysql/support-files
cp mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
cp mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
使用navicat輸入用戶密碼連接mysql成功 完成!
鑒於很多童鞋反應,mysql5.7安裝后出現無法啟動,建立/var/run/mysqld 並賦權mysql用戶解決了啟動的問題,但是重啟系統后又出現無法啟動的問題,導致/var/run/mysqld 目錄每次重啟后都需要手動去創建並賦權mysql用戶才能起到mysql,可以說,這是mysql5.7的一個小BUG,經過探索實踐,現給出終極解決方案:
首先申明,修改my.cnf沒有用。
之所以/var/run/mysqld 目錄每次重啟后都需要手動去創建,是因為/var/run/目錄下建立文件夾是在內存中,故每次重啟后內存被清空導致/var/run/mysqld 也被清除,從而導致無法啟動mysql。
vim /etc/init.d/mysqld
找到下面字段
get_mysql_option mysqld datadir "/var/lib/mysql"
datadir="$result"
get_mysql_option mysqld socket "$datadir/mysql.sock"
socketfile="$result"
get_mysql_option mysqld_safe log-error "/var/log/mysqld.log"
errlogfile="$result"
get_mysql_option mysqld_safe pid-file "/var/run/mysqld/mysqld.pid"
mypidfile="$result"
修改為
get_mysql_option mysqld datadir "/var/lib/mysql"
datadir="$result"
get_mysql_option mysqld socket "$datadir/mysql.sock"
socketfile="$result"
get_mysql_option mysqld_safe log-error "/var/log/mysqld.log"
errlogfile="$result"
get_mysql_option mysqld_safe pid-file "/var/lib/mysql/mysqld.pid"
mypidfile="$result"
保存后退出,執行下面命令:
systemctl daemon-reload
//重構進程
//重構進程
service mysqld start
//啟動mysql
//啟動mysql
chkconfig mysqld on
//加入隨系統啟動啟動
//加入隨系統啟動啟動
至此,解決。