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