mysql 8 的安裝部署

公司最新的項目用到了mysql 8,安裝和部署在阿里雲上,系統是centos7。最近這兩年我的思路從網上搜索別人的文章,轉變爲以官網爲主,查官網資料解決問題,以百度爲最後一步,因爲像mysql這麼龐大的產品,和系統的關聯很緊密,而且文檔非常的複雜,所以前人踩過的坑值得借鑑。

contos7默認安裝了mariadb數據庫,這裏把他移除:卸載yum remove mariadb-libs.x86_64

官網安裝步驟:

依賴libaio,先安裝 libaio 

shell> yum search libaio  

shell> yum install libaio

 

shell> groupadd mysql  --設置mysql用戶組

shell> useradd -r -g mysql -s /bin/false mysql --加入mysql用戶

shell> cd /usr/local

shell> tar xvf /path/to/mysql-VERSION-OS.tar.xz --解壓mysql到本路徑

shell> ln -s full-path-to-mysql-VERSION-OS mysql --軟連接

shell> cd mysql

shell> mkdir mysql-files

shell> chown mysql:mysql mysql-files

shell> chmod 750 mysql-files --權限,操作日誌等

shell> bin/mysqld --initialize --user=mysql --初始化數據庫,注意初始密碼要記錄下來

 

下面這兩步是mysql的ssl認證方式,在我們使用中不需要這種方式,所以就不執行

shell> bin/mysql_ssl_rsa_setup 

shell> bin/mysqld_safe --user=mysql &

 

註冊server服務,使用服務命令啓動

shell> cp support-files/mysql.server /etc/init.d/mysql.server

service mysqld start

 

官網中默認方式沒有使用配置文件,我在/etc文件下看到my.cnf.rpmsave文件,複製爲my.cnf 文件,裏面可以修改data路徑,log路徑等。

創建用戶

create user 'username'@'localhost' identified by 'password';

授權所有權限

grant all privileges on database_name.* to 'username'@'localhost';

刷新權限

flush privileges;

 

操作中遇到的問題:

  • [root@iZbp198h7llwft78a5652vZ mysql]# bin/mysqld –-initialize -–user=mysql -–basedir=/usr/local/mysql –-datadir=/data/mysql

mysqld: File './binlog.index' not found (OS errno 13 - Permission denied)

2019-12-12T11:35:44.584067Z 0 [Warning] [MY-011070] [Server] 'Disabling symbolic links using --skip-symbolic-links (or equivalent) is the default. Consider not using this option as it' is deprecated and will be removed in a future release.

2019-12-12T11:35:44.584193Z 0 [System] [MY-010116] [Server] /usr/local/src/mysql-8.0.18-linux-glibc2.12-x86_64/bin/mysqld (mysqld 8.0.18) starting as process 26921

2019-12-12T11:35:44.587294Z 0 [ERROR] [MY-010119] [Server] Aborting

2019-12-12T11:35:44.587500Z 0 [System] [MY-010910] [Server] /usr/local/src/mysql-8.0.18-linux-glibc2.12-x86_64/bin/mysqld: Shutdown complete (mysqld 8.0.18)  MySQL Community Server - GPL.

  • /etc/my.cnf 下的log文件地址

inux下安裝mysql連接的時候經常回提示說找不到mysql.sock文件,解決辦法很簡單:

如果是新安裝的mysql,提示找不到文件,就搜索下,指定正確的位置

  • [root@iZbp198h7llwft78a5652vZ support-files]# service mysqld start

Starting MySQL. ERROR! The server quit without updating PID file (/data/mysql/iZbp198h7llwft78a5652vZ.pid).

這個問題折磨了很久,pid文件找不到,修改不了這個文件。新建一個pid文件,一運行命令就會刪除此文件。最後發現是log文件夾的權限問題,設置爲mysql組,750操作權限後就可以了。

  • linux環境下報錯bash: mysql: command not found 的解決方法

# mysql -u root

-bash: mysql: command not found

原因:這是由於系統默認會查找/usr/bin下的命令,如果這個命令不在這個目錄下,當然會找不到命令,我們需要做的就是映射一個鏈接到/usr/bin目錄下,相當於建立一個鏈接文件。

首先得知道mysql命令或mysqladmin命令的完整路徑,比如mysql的路徑是:/usr/local/mysql/bin/mysql,我們則可以這樣執行命令:

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

  • 剛剛安裝完成MYSQL,登錄進去以後,什麼操作都提示錯誤,ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

這是說明我們的初始密碼時間過期了,重新改一下密碼就行

alter user user() identified by "你的新密碼";

總結:

根據官網的步驟來可以梳理清晰思路,每一步搞清楚是什麼意思,遇到問題多查資料,多測試。

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