linux 部署mysql
一、前期準備
1. mysql下載
http://鏈接:https://pan.baidu.com/s/11Ti3G9XaiBCUETkdOFyIOA?pwd=5b14
提取碼:5b14
2. 將mysql5.7的jar包上傳到linux的root用戶下的/home目錄下
3. 檢查是否安裝了MySQL
yum list installed | grep mysql
4. 卸載之前的MySQL(如果沒有,則不用執行這一步 )
yum remove mysql-lib.x86_64 #這里的mysql-lib.x86_64是上圖對應的序號1
5. 刪除之后再從新查看一下還有沒有mysql
二、安裝MySQL
解壓mysql安裝包
cd /home #進入到存放mysql壓縮包的目錄
tar -zxvf mysql-5.7.37-linux-glibc2.12-x86_64.tar.gz #解壓
2. 重命名 (因為名字太長了,為了方便,把解壓之后的mysql目錄重新命名)
mv mysql-5.7.37-linux-glibc2.12-x86_64 mysql5.7
3. 在mysql目錄下面創建data目錄
mkdir /home/mysql5.7/data
#創建好之后我們在mysql5.7目錄內ll就可以看到創建好的data目錄了
4. 創建mysql的用戶組和用戶,并且給mysql5.7目錄設置用戶組和用戶
注:注意這兒的.必須要,否則會報錯。
cd /home
groupadd mysql
useradd mysql -g mysql
cd mysql5.7
chown -R mysql .
chgrp -R mysql .
5. 配置my.cnf文件 vim /etc/my.cnf ,添加內容
[mysqld]
basedir=/home/mysql5.7
datadir=/home/mysql5.7/data
port=3306
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
6. 修改/etc/selinux/config文件配置,然后重啟服務器
vi /etc/selinux/config
把SELINUX=enforcing改為SELINUX=disabled,保存退出,然后重啟服務器。
注:這里修改/etc/selinux/config文件配置文件之后要,重啟虛擬機,不然接下來的操作可能會遇到問題。
7. 創建sock文件目錄
mkdir -p /var/lib/mysql
cd /home/mysql5.7
chown mysql:mysql /var/lib/mysql
8. 配置mysql環境變量
vim /etc/profile
添加如下內容:
export MYSQL_HOME=/home/mysql5.7
export PATH=$MYSQL_HOME/bin:$PATH
9. 初始化mysql
mysqld --user=mysql --basedir=/home/mysql5.7 --datadir=/home/mysql5.7/data --initialize
#初始化完成之后會自動分配一個密碼
10. 啟動mysql服務器
注:這里三條命名都要執行,要先重啟服務器,之后才行
/home/mysql5.7/support-files/mysql.server restart #重啟mysql服務器
/home/mysql5.7/support-files/mysql.server stop #停止mysql服務器
/home/mysql5.7/support-files/mysql.server start #啟動mysql服務器
11. 檢查mysql服務是否正常
ps -ef | grep mysql
12. 登陸mysql
mysql -u root -p
#登錄的時候會提示輸入密碼,這里的額密碼就是初始化的時候分配的密碼,把初始化時分配的密碼復制黏貼到這里就行了。
注意:復制密碼的時候不要多復制了空格;黏貼了密碼之后密碼是不會顯示出來的,黏貼了一次之后直接按回車鍵就行了,不要黏貼多次,黏貼多次就會提示密碼錯誤。
13.需要注意的是,剛安裝的mysql,不能直接使用,需要修改初始密碼
set password=password("123456");
#這里的123456是要修改的密碼,記得在修改密碼的時候不要忘記輸入 ;
14. 測試密碼是否修改成功
exit #退出mysql
mysql -u root -p #登錄mysql
#提示輸入密碼之后,輸入剛修改的密碼就好了。
三、遇到的問題
在刪除linux自帶的mysql時,yum remove mysql-ql-libs.x86_64 出錯,提示“無法解析主機”
解決辦法:
vi /etc/yum.repos.d/CentOS-Base.repo
在文件最下邊添加如下內容:
[base]
name=CentOS-$releasever
enabled=1
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos-vault/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos-vault/centos/RPM-GPG-KEY-CentOS-6
[updates]
name=CentOS-$releasever
enabled=1
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos-vault/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos-vault/centos/RPM-GPG-KEY-CentOS-6
[extras]
name=CentOS-$releasever
enabled=1
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos-vault/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos-vault/centos/RPM-GPG-KEY-CentOS-6
[centosplus]
name=CentOS-6.10 - Plus - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos-vault/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos-vault/centos/RPM-GPG-KEY-CentOS-6
[contrib]
name=CentOS-6.10 - Contrib - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos-vault/centos/$releasever/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos-vault/centos/RPM-GPG-KEY-CentOS-6
添加好之后保存退出,在使用yum命令就可以了。
接下來從新輸入yum remove mysql-ql-libs.x86_64 ,就可以刪除成功了
2. mysqld --user=mysql --basedir=/home/mysql5.7 --datadir=/home/mysql5.7/data --initialize #在初始化mysql是出錯:
錯誤提示如下:
2022-10-15T10:06:23.227276Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2022-10-15T10:06:23.262777Z 0 [Warning] InnoDB: Retry attempts for writing partial data failed.
2022-10-15T10:06:23.262816Z 0 [ERROR] InnoDB: Write to file ./ibdata1failed at offset 0, 1048576 bytes should have been written, only 0 were written. Operating system error number 28. Check that your OS and file system support files of this size. Check also that the disk is not full or a disk quota exceeded.
2022-10-15T10:06:23.262849Z 0 [ERROR] InnoDB: Error number 28 means 'No space left on device'
2022-10-15T10:06:23.262856Z 0 [ERROR] InnoDB: Could not set the file size of './ibdata1'. Probably out of disk space
2022-10-15T10:06:23.262860Z 0 [ERROR] InnoDB: InnoDB Database creation was aborted with error Generic error. You may need to delete the ibdata1 file before trying to start up again.
2022-10-15T10:06:23.869576Z 0 [ERROR] Plugin 'InnoDB' init function returned error.
2022-10-15T10:06:23.869641Z 0 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
2022-10-15T10:06:23.869653Z 0 [ERROR] Failed to initialize builtin plugins.
2022-10-15T10:06:23.869658Z 0 [ERROR] Aborting
原因:這一大長串錯誤大體說的就是磁盤空間不夠
輸入: df - h
發現/home 的磁盤空間使用了的顯示100%,(這里問題解決了,一開始的錯誤沒有截圖,下圖是解決了之后的),原因是我的/home目錄下存儲的東西太多了,我們創建的用戶這些也都是默認在home目錄下。
解決辦法:
方法一:刪除一些不用的文件,釋放磁盤空間
方法二:對磁盤進行擴容,可以參考下這篇文章http://t.csdn.cn/Balg2
這里我用的是方法一,我把我的一下沒用用的用戶刪了,把里邊的一些沒有用的文件刪除了之后,就釋放了一些磁盤空間。就解決了。
對磁盤進行擴容之后,重新初始化mysql就可以了。
3. 解決磁盤空間不足之后,在初始化mysql的時,又遇到了問題,提示Can't create/write to file '/home/mysql5.7/data/is_writable' 。
具體如下:
mysqld: Can't create/write to file '/home/mysql5.7/data/is_writable' (Errcode: 13 - Permission denied)
2022-11-01T02:30:09.379330Z 0 [Warning] Changed limits: max_open_files: 1024 (requested 5000)
2022-11-01T02:30:09.380177Z 0 [Warning] Changed limits: table_open_cache: 431 (requested 2000)
2022-11-01T02:30:09.385902Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2022-11-01T02:30:09.449434Z 0 [ERROR] --initialize specified but the data directory exists and is not writable. Aborting.
2022-11-01T02:30:09.449614Z 0 [ERROR] Aborting
原因:這是因為權限不夠,在安裝mysql的時候,為了防止之后使用mysql的時候出現權限問題,所以安裝mysql的時候我們是在root用戶下安裝的。我安裝mysql的也是在root用戶下安裝的,然后出現權限問題是因為我沒有在root用戶下初始化mysql,我初始化mysql的時候忘記回到root用戶了。如果你的mysql安裝的時候沒有在root用戶下安裝的話,建議從新在root用戶安裝。
解決辦法:
回到root用戶,在初始化。
————————————————
版權聲明:本文為CSDN博主「小-枝-丫」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/m0_61232019/article/details/127597908
浙公網安備 33010602011771號