linux下安裝mysql數(shù)據(jù)庫

1)tar.gz版的安裝步驟
1.1)確定安裝環(huán)境
MySQL安裝依賴于libaio庫,如沒有需要安裝。如下:

yum search libaio
yum install libaio

MySQL5.7.19后,支持Non-Uniform Memory Access(非統(tǒng)一內(nèi)存訪問架構(gòu)),Generic Binaries版本已經(jīng)添加了libnuma庫。如果沒有此支持庫,可以通過操作系統(tǒng)安裝包查找安裝。

1.2) 解壓,如:mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz

tar zxvf mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz -C /usr/local/software
cd /usr/local/
ln -s  /usr/local/software/mysql-5.7.21-linux-glibc2.12-x86_64   mysql
mkdir -p /usr/local/mysql/mysql-files

注:由于Generic Binaries版中的shell腳本路徑都是“/usr/local/mysql”,所以創(chuàng)建軟鏈接或重命名文件夾時(shí)不要隨便亂寫,否則需要額外修改shell腳本。


詳細(xì)說明.png

1.3) 創(chuàng)建mysql帳戶
mysql帳戶,密碼,用戶組全部都由linux系統(tǒng)創(chuàng)建。如下

groupadd mysql    //創(chuàng)建組
useradd -r -g mysql -s /bin/false mysql  //創(chuàng)建用戶并通過-g 指定組為mysql,-s是為用戶指定shell,-r為創(chuàng)建一個(gè)系統(tǒng)用戶   
passwd mysql  //給mysql用戶創(chuàng)建密碼,回車后需要輸入和確定密碼

1.4) 修改mysql文件夾的擁有者

chown mysql:mysql mysql-files
chmod 750 mysql-files
chown -R mysql:mysql /usr/local/mysql/ 或者 chown -R mysql /usr/local/mysql/;chgrp -R mysql /usr/local/mysql

1.5)添加mysql環(huán)境變量。安裝版的mysql是通過/sbin/mysql來找到mysql命令的不是對(duì)過配置環(huán)境變量。所以rpm版沒有也無需設(shè)置環(huán)境變量。

vim /etc/profile 

添加

MYSQL_HOME=/usr/local/mysql
PATH=$PATH:$MYSQL_HOME/bin
export PATH MYSQL_HOME

注:二進(jìn)制tar.gz或源碼安裝是需要手動(dòng)初始化data的,rpm安裝包自動(dòng)執(zhí)行。以下1.6 1.7兩個(gè)步驟任選其一。

1.6)使用mysqld命令手動(dòng)初始data文件夾。

cd /usr/local/mysql
bin/mysqld --initialize --user=mysql

注:執(zhí)行mysqld --initialize--initialize-insecure后其內(nèi)部主要做了7件事:
1.檢查data文件夾是否存在,如果存在并且不為空會(huì)報(bào)錯(cuò)。
2.創(chuàng)建相關(guān)數(shù)據(jù)庫和表以及授權(quán)。
3.服務(wù)器初始化系統(tǒng)表空間和相關(guān)的數(shù)據(jù)結(jié)構(gòu)來管理InnoDB表。
4.創(chuàng)建一個(gè)'root'@'localhost' 的超級(jí)賬號(hào)以及其他保留賬號(hào),--initialize參數(shù)會(huì)隨機(jī)生成一個(gè)密碼(--initialize-insecure密碼為空),如圖:

image.png
如果沒有注意或者忘記了可以刪除data文件夾,重新執(zhí)行一次。
5.服務(wù)端添加幫助信息(in the fill_help_tables.sql file),時(shí)區(qū)表
6.If the --init-file option was given to name a file of SQL statements, the server executes the statements in the file. This option enables you to perform custom bootstrapping sequences.
7.The server exits.

1.7)使用mysql_install_db腳本初始data文件夾。

cd /usr/local/mysql
bin/mysql_install_db --user=mysql 
#或者 手動(dòng)指定basedir,datadir路徑
bin/mysql_install_db --user=mysql \
     --basedir=/opt/mysql/mysql \
     --datadir=/opt/mysql/mysql/data

更詳細(xì)的操作請(qǐng)參考:https://dev.mysql.com/doc/refman/5.7/en/data-directory-initialization-mysql-install-db.html

1.8)如果你想讓mysql服務(wù)自動(dòng)支持安全鏈接,執(zhí)行ssl相關(guān)的安裝:

bin/mysql_ssl_rsa_setup 

1.9)啟動(dòng)mysql服務(wù)

bin/mysqld_safe --user=mysql &

注:默認(rèn)地mysql的輸出日志記錄在 hostname.err文件中,并非是啟動(dòng)錯(cuò)誤。
image.png

可選項(xiàng):將mysql服務(wù)加入開機(jī)啟動(dòng)

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

更加詳細(xì)設(shè)置請(qǐng)參考:https://dev.mysql.com/doc/refman/5.7/en/binary-installation.html

通過

mysql -uroot -p (無密碼使用:mysql -u root --skip-password) 

登錄后一定要修改密碼:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!'

可能會(huì)遇到的問題:
1)ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
如果是在一個(gè)空機(jī)器上安裝,按照上面的步驟是不會(huì)出現(xiàn)這個(gè)問題的。解決方法:刪除安裝目錄下的data(/usr/local/mysql/data),/etc/my.cnf 重新執(zhí)行步驟1.6或1.7。注意:1.6中會(huì)生成一個(gè)mysql root用戶登錄的臨時(shí)密碼用于mysql -uroot -p 時(shí)的密碼輸入。
2)Access denied for user 'root'@'localhost'
若登錄時(shí)報(bào)的是這個(gè)錯(cuò),說明是密碼輸入不正確。到底輸入哪個(gè)密碼才是正確的呢?上面說了,初始化數(shù)據(jù)庫時(shí)會(huì)有一個(gè)臨時(shí)密碼,輸入的就應(yīng)該是這個(gè)。但是如果還報(bào)錯(cuò),說明MySQL初始化操作不止做了一次,臨時(shí)密碼并不會(huì)重新生成。
解決方案:

#先停掉服務(wù)
/usr/local/mysql/support-files/mysql.server stop
#繞過網(wǎng)絡(luò)和權(quán)限驗(yàn)證進(jìn)行登錄
/usr/local/mysql/bin/mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
#修改mysql.user表中的root賬號(hào)密碼
use mysql;
update user set authentication_string=PASSWORD('newpassword') where user='root';#注意5.7版本密碼字段名是authentication_string不是password。
FLUSH PRIVILEGES;
quit;
#使用新密碼登錄,如下操作根據(jù)提示來做。
mysql -uroot -p

上述mysql的安裝步驟都是官網(wǎng)提供的,按照步驟肯定不會(huì)有問題。唯一卡殼的是初始化后生成的臨時(shí)密碼可能會(huì)忘。

2)yum 安裝方式
https://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/

3)用上述方式安裝完MySQL數(shù)據(jù)庫后,遠(yuǎn)程機(jī)器上的客戶端連接mysql服務(wù)會(huì)出錯(cuò)。
首先將linux上的防火墻關(guān)閉,然后做入下操作:
方法一:

use msyql;update user set host='%' where user='root'

方法二:

grant all privileges on *.* to 'root'@'%' identififed by '密碼' with grant option;

最后:

flush privileges;

不用重啟客戶端就可以直接連接上mysql了。

MySQL賬戶管理

使用linux創(chuàng)建一個(gè)mysql賬號(hào)只是為了安裝msql數(shù)據(jù)庫,這是mysql安裝需要的。
開發(fā)中的賬號(hào)和密碼推薦使用MySQL Workbench創(chuàng)建。

image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容