操作系統:CentOS Linux release 7.5
安裝軟件:mysql5.7
說明:使用官方編譯好的二進制文件進行安裝
1.檢查操作系統是否自帶mysql
[root@localhost local]# rpm -qa|grep mysql
如果沒有看第二步。
- 如果有..............
- 使用yum命令,因為yum命令可以自動刪除與mysql相關的依賴;如果使用rpm命令,則還需要手動去刪除和mysql相關的文件
- [root@localhost local]# yum -y remove mysql-libs-xxxxx
檢查刪除是否成功。如果沒有提示則刪除成功。
[root@localhost local]# rpm -qa|grep mysql
- [root@localhost local]# yum -y remove mysql-libs-xxxxx
2.下載mysql5.7
mysql官網 https://dev.mysql.com/downloads/mysql/5.7.html#downloads
將下載的安裝包"mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz"利用xftp上傳至/usr/local下或者使用命令scp -r 上傳到服務器/usr/local下
解壓
[root@localhost local]# tar -zxvf mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz
修改文件名
[root@localhost local]# mv mysql-5.7.21-linux-glibc2.12-x86_64/ mysql57
進入/mysql57創建data文件夾
-
[root@localhost local]# cd mysql57/
5.配置mysql
創建以下文件,設置訪問權限,用於mysql配置中
第一步:創建文件/tmp/mysql.sock。並設置權限
創建文件
[root@localhost mysql57]# mkdir tmp
[root@localhost mysql57]# cd tmp
[root@localhost tmp]# ll
total 0
[root@localhost tmp]# touch mysql.sock
[root@localhost tmp]# ll
total 0
-rw-r--r-- 1 root root 0 Aug 11 21:59 mysql.sock
設置權限
[root@localhost tmp]# chown -R mysql:mysql /usr/local/mysql57/tmp/mysql.sock
[root@localhost tmp]# chmod 755 /usr/local/mysql57/tmp/mysql.sock
第二步:創建/log/mysqld.log。並設置權限
[root@localhost mysql57]# mkdir log
[root@localhost mysql57]# cd log
[root@localhost log]# ll
total 0
[root@localhost log]# touch mysqld.log
[root@localhost log]# chown -R mysql:mysql /usr/local/mysql57/log/mysqld.log
[root@localhost log]# chmod 755 /usr/local/mysql57/log/mysqld.log
如果出錯,說明路徑沒有寫全,要寫絕對路徑
第三步:創建/tmp/mysqld.pid。並設置權限
[root@localhost log]# cd ../tmp
[root@localhost tmp]# touch mysqld.pid
[root@localhost tmp]# chown -R mysql:mysql /usr/local/mysql57/tmp/mysqld.pid
[root@localhost tmp]# chmod 755 /usr/local/mysql57/tmp/mysqld.pid
6.初始化mysql
[root@localhost mysql57]# bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql57/ --datadir=/usr/local/mysql57/data/
可能會報錯。報錯信息
bin/mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory
解決方法:
原因:
yum安裝的是libnuma.so.1,但安裝時默認安裝的是32的,而db2需要的是64位的
1.如果已經安裝了libnuma.so.1,先yum remove libnuma.so.1
[root@localhost mysql57]# yum remove libnuma.so.1
2.安裝依賴包 yum -y install numactl.x86_64
[root@localhost mysql57]# yum -y install numactl.x86_64
安裝完成后重新,執行
[root@localhost mysql57]# bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql57/ --datadir=/usr/local/mysql57/data/
安裝成功
配置SSL參數(在mysql目錄下)
[root@localhost mysql57]# bin/mysql_ssl_rsa_setup --datadir=/usr/local/mysql57/data/

由於mysql-5.7.23版本my.cnf不在/support-files下,故我們創建my.cnf文件。
-
[root@localhost mysql57]# touch /etc/my.cnf
-
[root@localhost mysql57]# vim /etc/my.cnf
復制如下內容(每個人安裝路徑可能不一樣,需要修改):
[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'
basedir=/usr/local/mysql57
datadir=/usr/local/mysql57/data
port = 3306
socket=/tmp/mysql.sock
log-error=/usr/local/mysql57/log/mysqld.log
pid-file=/usr/local/mysql57/tmp/mysqld.pid
#表名不區分大小寫
lower_case_table_names = 1
max_connections=5000
sql_mode=STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
配置完成
7.啟動mysql
配置mysql自動啟動(可根據需要配置)
[root@localhost mysql57]# cp support-files/mysql.server /etc/init.d/mysql
[root@localhost mysql57]# vim /etc/init.d/mysql
添加配置(i 進入編輯;esc--> :wq保存退出)
若配置了mysql自啟動方式則可以使用服務方式啟動mysql
#查看mysql狀態
/etc/init.d/mysql status 或者 service mysql status
#啟動mysql
/etc/init.d/mysql start 或者 service mysql start
#停止mysql
/etc/init.d/mysql stop 或者 service mysql stop
#重新啟動mysql
/etc/init.d/mysql restart 或者 service mysql restart
查看mysql服務說明啟動成功
ps -ef|grep mysql
啟動mysql
[root@localhost tmp]# service mysql start
Starting MySQL. ERROR! The server quit without updating PID file (/usr/local/mysql57/tmp/mysqld.pid).
報錯了,上面說沒有/usr/local/mysql57/tmp/mysqld.pid。
解決方案:
a)創建文件/usr/local/mysql57/tmp/mysqld.pid
b)修改權限
修改存放mysqld.pid文件目錄的權限
chown -R mysql /usr/local/mysql57/tmp
chgrp -R mysql /usr/local/mysql57/tmp
chmod 777 /usr/local/mysql57/tmp
重新啟動成功(如果還不行,就是中間某個步驟寫錯了。或者直接把mysql目錄權限賦為777
8.配置mysql到環境變量
[root@localhost tmp]# vim /etc/profile
-
export MYSQL57_HOME=/usr/local/mysql57/bin #mysql5.7/bin路徑
-
export PATH=$PATH:${MYSQ57_HOME}

這個地方是冒號 ( :)
設置環境變量立即生效
[root@localhost tmp]# source /etc/profile
方法一:修改mysql密碼 (安裝完后無論什么操作都提示錯誤)
原因是:我們的初始密碼時間過期了,重新改一下密碼就行
登錄mysql :mysql -uroot -p
然后執行sql語句修改密碼:alter user user() identified by "你的新密碼";
方法二:
update mysql.user set authentication_string=password('123456') where User="root" and Host="localhost";
flush privileges; #刷新系統授權表
【備注:查了一下資料,發現MySQL5.7以后,password字段不再存在,變成了authentication_string】
+++++++++++++++++++++++++忘記密碼后重置密碼++++++++++++++++++
重置密碼解決MySQL for Linux錯誤 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
一般這個錯誤是由密碼錯誤引起,解決的辦法自然就是重置密碼。
假設我們使用的是root賬戶。
1.重置密碼的第一步就是跳過MySQL的密碼認證過程,方法如下:
vim /etc/my.cnf(注:windows下修改的是my.ini)
在文檔內搜索mysqld定位到[mysqld]文本段:
/mysqld(在vim編輯狀態下直接輸入該命令可搜索文本內容)
在[mysqld]后面任意一行添加“skip-grant-tables”用來跳過密碼驗證的過程,如下圖所示:
保存文檔並退出:
:wq
2.接下來我們需要重啟MySQL:
/etc/init.d/mysql restart(有些用戶可能需要使用/etc/init.d/mysqld restart)
注意:我用的是service mysqld restart
3.重啟之后輸入#mysql即可進入mysql。
4.接下來就是用sql來修改root的密碼
mysql> use mysql;
mysql> update user set password=password("你的新密碼") where user="root";
設置密碼我沒成功 報錯
mysql> update user set password=password("123456") where user="root";
ERROR 1054 (42S22): Unknown column 'password' in 'field list'
原因:
5.7版本下的mysql數據庫下已經沒有password這個字段了,password字段改成了authentication_string
所以使用下面一句話
mysql> update mysql.user set authentication_string=password('*******') where user='*******'; #修改密碼成功
mysql> flush privileges;
mysql> quit
到這里root賬戶就已經重置成新的密碼了。
5.編輯my.cnf,去掉剛才添加的內容,然后重啟MySQL。大功告成!
網上有很多關於這個問題的解決說明,很多剛接觸的朋友可能比較迷惑的是在自己的平台上找不到my.cnf或者my.ini文件,如果你是Linux,使用如下方式可以搜索到:
至於windows平台,去安裝目錄下找一下my.ini吧。
原文鏈接:https://blog.csdn.net/pdsu161530247/article/details/81585889
:https://www.cnblogs.com/wenqiangit/p/9767294.html