阿里雲ESC服務器Linux上安裝配置MySql

網上查了一大堆教程,各種問題就不說了,各種不對,報錯,用不了,還卸載了重新安裝。
特此記錄一下正確的安裝過程,以供小夥伴們參考。

現在買的esc雲服務器實例,默認安裝了mariadb數據庫,本質和mysql是一樣的,但是我們需要卸載。

說明,我沒有安裝新的8.0版本,是安裝的mysql5.7.26版本。

1、檢查是否安裝過mysql和mariadb 數據

檢查mysql

rpm -qa | grep mysql

如有,顯示類似如下

mysql-libs-5.1.52-1.el6_0.1.x86_64

選擇卸載

rpm -e --nodeps mysql-libs-5.1.52-1.el6_0.1.x86_64  // 強力刪除模式,如果使用上面命令刪除時,提示有依賴的其它文件,則用該命令可以對其進行強力刪除

檢查mariadb

rpm -qa | grep mariadb

有的話,顯示類似

mariadb-libs-5.5.56-2.el7.x86_64

卸載

rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64

我在安裝的時候,是沒有mysql,但是有mariadb的。我只需要卸載後面的那個。

2、找一個地方,用來放置mysql的安裝包,並且用來解壓。
我是在/opt/mysql這個目錄。在/opt目錄下新建一個mysql目錄。
這裏,可以去官方下載二進制安裝包後,通過xftp軟件上傳上來。
我這裏,是直接在服務器上下載。
通過cd命令切換到/opt/mysql/目錄下,執行下載mysql5.7.26

wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz

3、解壓並移動

我第一次安裝的時候,沒有把msql放置到/usr/local目錄,運行的時候,有錯誤,後來只能卸載了重新安裝。這裏,我還是推薦大家把解壓後的文件移動到/usr/local目錄下面。

解壓

tar -xvf mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz 

移動

mv mysql-5.7.26-linux-glibc2.12-x86_64 /usr/local/

重命名

 mv mysql-5.7.26-linux-glibc2.12-x86_64/ mysql-5.7.26

這裏,你也可以直接命名爲mysql,或是和我一樣,mysql-5.7.26這樣,最好和我一樣,涉及到後面配置路徑等。

4、創建用戶並賦予目錄權限
檢查mysql組和用戶是否存在,如無創建

cat /etc/group | grep mysql
#類似
mysql:x:490:
cat /etc/passwd | grep mysql
#類似
mysql:x:496:490::/home/mysql:/bin/bash

如果類似上面這樣的顯示,說明已經有了。如果運行命令後,沒有打印類似下面的這樣的信息,說明是無。那我們就需要創建。
依次執行下面兩條命令:

groupadd mysql
useradd -r -g mysql mysql

#useradd -r參數表示mysql用戶是系統用戶,不可用於登錄系統

創建mysq數據目錄

數據目錄data,其實是可以創建在其他的地方,對應的後面的配置就需要修改。爲了不想折騰,大家還是按照我寫的這樣的路徑吧。

回到根目錄,然後創建data文件夾,然後在data文件夾下新建一個mysql文件夾。

    cd /
    mkdir -p data
    cd data/
    mkdir -p mysql

賦予權限

chown mysql:mysql -R /data/mysql

5、配置參數
執行

 vim /etc/my.cnf

然後 按 i 進入編輯模式,把下面內容複製進去

[mysqld]
bind-address=0.0.0.0
port=3306
user=mysql
basedir=/usr/local/mysql-5.7.26
datadir=/data/mysql
socket=/tmp/mysql.sock
log-error=/data/mysql/mysql.err
pid-file=/data/mysql/mysql.pid
#character config
character_set_server=utf8mb4
symbolic-links=0

編輯完後 按esc 後按住 shift+: 輸入 wq表示保存並退出 。

大家可以看到,這個配置文件夾內的文件路徑,和我們上面的操作息息相關。這也是推薦大家儘量保持一樣的原因。

6、初始化mysql

cd /usr/local/mysql-5.7.26/bin/
 ./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql-5.7.26/ --datadir=/data/mysql/ --user=mysql --initialize

運行初始化後,

vim /data/mysql/mysql.err
2020-07-05T03:38:52.580334Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2020-07-05T03:38:52.580411Z 0 [Warning] 'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' and 'ERROR_FOR_DIVISION_BY_ZERO' sql modes should be used with strict mode. They will be merged with strict mode in a future release.
2020-07-05T03:38:52.580415Z 0 [Warning] 'NO_AUTO_CREATE_USER' sql mode was not set.
2020-07-05T03:38:53.706961Z 0 [Warning] InnoDB: New log files created, LSN=45790
2020-07-05T03:38:53.905376Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2020-07-05T03:38:53.967412Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 0c91a1ad-be71-11ea-a90e-00163e06c7d5.
2020-07-05T03:38:53.969684Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2020-07-05T03:38:53.970066Z 1 [Note] A temporary password is generated for root@localhost: a;1sUgrMwq2H

這個日誌文件的最下面,root@localhost: a;1sUgrMwq2H
root@localhost後面的一串字符串,就是初始化密碼。可以保持下來,等會初次登陸的時候會用到。

運行初始化話的時候,可能會報錯,
如果報錯error while loading shared libraties: ibaio.so.l:cannot oped shared boject file: No such file or directory found
注意,關鍵字libaio.so.l
說明,缺少文件
出現該問題首先檢查該鏈接庫文件有沒有安裝使用 命令進行覈查

rpm -qa|grep libaio   

運行命令後發現系統中無該鏈接庫文件
那就需要安裝依賴

yum install  libaio-devel.x86_64

這個錯誤,我在安裝的時候是出現了。如果大家也遇到,可以參考一下。

這個時候,咱們先啓動看一下,能不能運行起來

/usr/local/mysql-5.7.26/support-files/mysql.server start

在這裏插入圖片描述如果看到出現綠色的ok,那麼說明我們的mysql是啓動起來了,

7、添加軟連接,並重啓mysql服務

不能每次啓動都輸入一長串的路徑來啓動mysql的服務,對吧。

ln -s /usr/local/mysql-5.7.26/support-files/mysql.server /etc/init.d/mysql 

大概意思是,將/usr/local/mysql-5.7.26/support-files/mysql.server的這個文件,關聯一個到/etc/init.d/mysql這個目錄的這個文件

ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql

把這個文件也連接一下

service mysql restart

然後執行重啓命令
在這裏插入圖片描述兩個綠色的ok,

8、初次登陸,並且修改密碼

mysql -u root -p

提示輸入密碼,把上面日誌中的那個臨時密碼,拿來輸入
類型如下顯示:

[root@localhost /]#  mysql -u root -p
Enter password:

輸入密碼的時候,是看不到有沒有輸入的,回車就好。

密碼對了的話,就會進入到mysql>這種形式內

mysql>set password for root@localhost = password('你自己想設置的密碼');

通過上面的語句,輸入新的密碼。注意,語句最後的分號,不要漏了。不然,不行啊。
在這裏插入圖片描述設置成功會給出響應。

9、開發遠程連接

mysql>use mysql;
msyql>update user set user.Host='%' where user.User='root';
mysql>flush privileges;

就這三條命令。
在這裏插入圖片描述類似這樣的。

10、設置開機啓動之類的
先切換到頂級目錄,

cd /

將服務文件拷貝到init.d下,並重命名爲mysql

cp /usr/local/mysql-5.7.26/support-files/mysql.server /etc/init.d/mysqld

賦予可執行權限

chmod +x /etc/init.d/mysqld

添加服務

chkconfig --add mysqld

顯示服務列表

chkconfig --list

在這裏插入圖片描述類似這樣,看到mysql運行啦。

11、本地軟件遠程連接服務器上的mysql
需要在esc服務器實例上的,安全組規則中添加一個:3306端口放開規則
不然就被防火牆阻止了,遠程連接不了。

到此,就操作完成了。

附上我參考的找的比較好的文字,大家一起參考着看。
1、我只要參考這個
https://blog.csdn.net/weixin_38003389/article/details/90696337
2、初始化的時候,遇到錯誤了,這個有解決辦法https://www.jianshu.com/p/276d59cbc529

3、還參考了這篇文章,我第一次是按照這個文章來的,但是按照他的這個步驟,跑不起來,有錯,我又只能刪了,重新安裝我寫的流程來。https://blog.csdn.net/lch520baby/article/details/89081306

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章