一、清理老的mysql
(1)卸載已有的mysql
查找以前是否裝有mysql命令:
rpm -qa|grep -i mysql
停止mysql服務,卸載之前安裝的mysql
rpm -ev 包名
如果卸載過程中報依賴錯誤,直接在卸載命名後面加參數 --nodeps
rpm -ev 包名 --nodeps
(2)查找之前老版本mysql的文件並刪除老版本mysql的文件
1 find / -name mysql
2 # 出來一堆列表
3 # 一個一個刪除就ok
二、安裝前的準備
(1)安裝mysql之前需要確保系統中有libaio依賴
1 yum search libaio
2 yum install libaio
(2)下載安裝包(tar.gz的包,非rpm和yum)
1 cd /usr/
2 mkdir database
3 cd database
4 wget http://mirrors.163.com/mysql/Downloads/MySQL-5.7/mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz
官網一般都很慢,所以使用網易國內鏡像地址: http://mirrors.163.com/mysql/Downloads/MySQL-5.7/mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz
(3)解壓
1 tar -zxvf mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz
2 mv mysql-5.7.27-linux-glibc2.12-x86_64 mysql5.7
#重命名爲mysql5.7
三、安裝
(1)添加用戶和組
1 #添加用戶組
2 groupadd mysql
3 #添加用戶mysql 到用戶組mysql(使用-r參數表示mysql用戶是一個系統用戶,不能登錄)
4 useradd -r -g mysql mysql
5 #添加完用下面命令測試,能看到mysql用戶的信息
6 id mysql
(2)手動創建MySQL data目錄
1 cd /usr/database/mysql5.7/
2 mkdir data
(3)目錄權限設置
1 將mysql及其下所有的目錄所有者和組均設爲mysql
2 chown -R mysql:mysql /usr/database/mysql5.7/
3 查看是否設置成功,執行下面命令,可以看到文件的所有者和組都變成了mysql
4 cd /usr/database/
5 ll
6 結果中出現:drwxr-xr-x 10 mysql mysql 4096 Jul 3 13:57 mysql5.7
(4)配置my.cnf文件
此文件非常重要,初始化之前要把此文件放到 /etc 目錄下
1 rm -rf /etc/my.cnf
2 vim /etc/my.cnf
3 #此文件內容如下(路徑根據自己的實際情況):
[client]
port = 3306
socket = /tmp/mysql.sock
default-character-set=utf8mb4
[mysqld]
init-connect='SET NAMES utf8mb4'
basedir=/usr/database/mysql5.7 #根據自己的安裝目錄填寫
datadir=/usr/database/mysql5.7/data #根據自己的mysql數據目錄填寫
socket=/tmp/mysql.sock
max_connections=200 # 允許最大連接數
character-set-server=utf8mb4 # 服務端使用的字符集默認爲8比特編碼的latin1字符集
default-storage-engine=INNODB # 創建新表時將使用的默認存儲引擎
#skip-grant-tables
#此行忘記密碼修改用的 修改時再啓動(可以跳過密碼驗證)
[mysql]
default-character-set = utf8mb4
(5)初始化mysql
1 /usr/database/mysql5.7/bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/database/mysql5.7 --datadir=/usr/database/mysql5.7/data
2 #注意:mysqld --initialize-insecure初始化後的mysql是沒有密碼的
3 #重新修改下各個目錄的權限
4 chown -R root:root /usr/database/mysql5.7/
#把安裝目錄的目錄的權限所有者改爲root
5 chown -R mysql:mysql /usr/database/mysql5.7/data/
#把data目錄的權限所有者改爲mysql
這裏容易出問題的地方:
可能初始化會報錯 ,
例如 bin/mysqld: error while loading shared libraries: libnuma.so.1: 安裝mysql
解決辦法: yum -y install numactl 輸入這條命令即可
(如果安裝mysql出現了以上的報錯信息.這是卻少numactl這個時候如果是Centos就yum -y install numactl就可以解決這個問題了. ubuntu的就sudo apt-get install numactl就可以解決這個問題了)
來源鏈接:https://blog.csdn.net/liukai6/article/details/78323364
(6)啓動mysql
1 /usr/database/mysql5.7/bin/mysqld_safe --user=mysql &
(7)修改密碼
1 cd /usr/database/mysql5.7/bin/
2 ./mysql -u root -p
# 默認沒有密碼,直接敲回車就可以
3 use mysql;
4 update user set authentication_string=password('這裏填你設置的密碼') where user='root';
5 flush privileges;
6 exit;
(8)測試登錄
1 cd /usr/database/mysql5.7/bin/
2 ./mysql mysql -u root -p
3 輸入密碼後,應該就連接上了
4 show databases;
5 exit;
#退出
(9)copy啓動腳本並將其添加到服務且設置爲開機啓動
1 #mysql啓動腳本爲:/usr/database/mysql5.7/support-files/mysql.server
2 cp /usr/database/mysql5.7/support-files/mysql.server /etc/init.d/mysql
3 #添加服務
4 chkconfig --add mysql
5 # 顯示服務列表
6 chkconfig --list
7 # 開機啓動
8 chkconfig --level 345 mysql on
9 # 測試添加的服務是否能用
10 service mysql status
#查看狀態
11 service mysql start
#啓動mysql服務
12 service mysql stop
#停止mysql服務
13 service mysql restart
#重啓mysql服務
四、設置外網可以訪問
1 在mysql的bin目錄下執行:mysql -uroot -p密碼 登陸到數據庫
如果進入不了數據庫,出現 -bash: mysql: command not found 報錯.解決辦法 查看下方的相關說明(3)
2 執行:use mysql;
3 執行:select host,user from user;
4 可以看到user爲root,host爲localhost的話,說明mysql只允許本機連接,那麼外網,本地軟件客戶端就無法連接了。
5 調整方法:
6 執行:update user set host='%' where user ='root';
7 執行刷新:flush privileges;
8 OK!現在可以訪問了!
9 如果還訪問不了,那可能是防火牆問題,修改下防火牆就ok,修改方法這裏就不提了,網上很多資料
五、相關說明
(1)mysql服務的啓動和停止命令
1 service mysql status #查看狀態
2 service mysql start #啓動mysql服務
3 service mysql stop #停止mysql服務
4 service mysql restart #重啓mysql服務
(2)怎麼在Linux中登錄mysql
1 #進入mysql安裝目錄的bin目錄,然後輸入以下命令
2 ./mysql -u root -p
不行就 mysql -u root -p
3 #然後輸入密碼就登錄成功
4 exit; #退出mysql
(3) 如果進入數據庫出現 -bash: mysql: command not found 報錯
# mysql -u root
-bash: mysql: command not found
原因:這是由於系統默認會查找/usr/bin下的命令,如果這個命令不在這個目錄下,當然會找不到命令,我們需要做的就是映射一個鏈接到/usr/bin目錄下,相當於建立一個鏈接文件。
首先得知道mysql命令或mysqladmin命令的完整路徑,比如mysql的路徑是:/usr/database/mysql5.7,我們則可以這樣執行命令: