一、下載對應版本的mysql
1、官網下載壓縮安裝包。
進入到mysql官網下載自己對應版本的mysql,下載地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads,選擇Linux的通用版本,64位,並且經過了壓縮的安裝包(說明:tar表示是安裝包,非安裝程序,gz表示是壓縮過的安裝包)。
我這里下載mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz版本。
2、在Linux中通過命令下載。
二、環境配置
1、查看操作系統位數:getconf LONG_BIT;
2、查看系統是否已經安裝mariaDB:rpm -qa|grep mariaDB
如果已經安裝,則刪除。mariaDB是mysql的一個分支,兼容mysql。
3、刪除已經安裝的mariaDB
三、安裝mysql
1、解壓mysql壓縮安裝包
- 解壓安裝包:tar -xzvf mysql-5.7.37-linux-glibc2.12-x86_64.tar.gz
xzvf參數的說明:
x:表示解壓;
z:表示壓縮方式;
v:顯示解壓過程;
f:表示后面接文件,必須。
- 修改解壓后的文件夾名稱:mv mysql-5.7.37-linux-glibc2.12-x86_64 mysql
- 移動解壓出來的文件夾,改名后的mysql,移動到: /usr/local下
2、檢查mysql組和用戶是否存
cat /etc/group|grep mysql
cat /etc/password|grep mysql
3、不存在,則添加
添加用戶組:groupadd mysql
添加用戶:useradd -r -g mysql mysql
4、創建data目錄
進入mysql目錄,cd /usr/local/mysql
創建data目錄,mkdir data
5、更改mysql用戶組、用戶、權限
為保障mysql用戶有足夠的權限,我們需要將mysql目錄下所有目錄及文件夾的所屬用戶組和用戶給到mysql:mysql,並讓mysql用戶具有相應的權限
更改用戶組及用戶:chown -R mysql:mysql /usr/local/mysql
更改權限:chmod -R 755 /usr/local/mysql
小知識:777代表具體權限,使用cl l可查看權限,rwx是三種權限,分別對應421
6、編輯配置文件/etc/my.cnf
如果該目錄下沒有my.cnf文件,則可以新建一個同名文件,並進行編輯。
vim /etc/my.cnf
編輯內容如下:
[mysqld]
#character
character-set-server=utf8
collation-server=utf8_general_ci
datadir=/usr/local/mysql/data
port = 3306
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
symbolic-links=0
max_connections=600
innodb_file_per_table=1
lower_case_table_names=1
[mysqld_safe]
datadir=/usr/local/mysql/data
log-error=/usr/local/mysql/data/error.log
pid-file=/usr/local/mysql/data/mysql.pid
user=mysql
tmpdir=/tmp
7、初始化mysql
進入mysql的bin目錄:cd /usr/local/mysql/bin
進行初始化: ./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
注意:必須要注意這里的初始密碼,后面要用。如果此處初始化報錯了,需要重新初始,可刪除data目錄,調整出問題的地方后,重新給相應的權限和更改用戶、用戶組,重新初始化。
8、測試啟動mysql服務
/usr/local/mysql/support-files/mysql.server start
注意:啟用時,可能報如下錯誤:Starting MySQL. ERROR! The server quit without updating PID file (/usr/local/mysql/data/localhost.localdomain.pid).
解決方法:編輯/etc/init.d/mysql,找到start模塊,添加--user=root到mysqld_safe 即可(還可能是因為其他原因,大部分原因網上可查)。
9、添加軟連接,並重啟mysql服務
ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
service mysql restart
10、登錄mysql
使用初始密碼登錄系統,mysql -u root -p
11、修改密碼、取消過期
查看user表信息:
use mysql;
desc user;
update user set authentication_string == password('用戶密碼'), password_expired='N' where user = 'root'
重啟mysql服務。
注意:a.如果在重啟服務的時候,提示Access denied for user ‘root’@‘localhost’(using password: YES)或者提示(You must reset your password using ALTER USER),則按照以下
關閉mysql服務,service mysql stop。可以通過service mysql statyus查看mysql服務的狀態。
進入safe模式。進入mysql安裝目錄的bin目錄, ./mysqld_safe --skip-grant-tables
另起一個客戶端,使用root 賬戶無密碼登陸,進行修改密碼。
mysql -u root
use mysql;
使用sql語句,修改密碼,並設置密碼不過期(因為默認是過期的)。update user set authentication_string == password('用戶密碼'), password_expired='N' where user = 'root';
然后使用select authentication_string,password_expired from user where user='root';查看以下修改結果。
更新權限:flush privileges;
quit;退出
重啟服務。(service mysql stop) (service mysql start)。這里如果無法啟動服務,可以選擇重啟系統,再啟動mysql服務。
最后使用修改后的新密碼,重新連接數據庫(mysql -u root -p)。
12、開放遠程連接
use mysql;
update user set user.Host='%' where user.User='root';
flush privileges;
quit;
13、設置開機自動啟動
將服務文件拷貝到init.d下,並重命名為mysql
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
賦予可執行權限
chmod +x /etc/init.d/mysqld
添加服務
chkconfig --add mysqld
顯示服務列表
chkconfig --list