本篇文章將從實(shí)際操作的層面,講解基于linux環(huán)境的MySQL的搭建和卸載。
1 搭建mysql
1.1 官網(wǎng)下載mysql壓縮包
下載壓縮包時(shí),可以先把安裝包下載到本地,再上傳到服務(wù)器,也可以在linux服務(wù)器上wget:
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz
官網(wǎng):https://dev.mysql.com/downloads/mysql/5.7.html#downloads
1.2 解壓gz壓縮包
tar -zxvf mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz
1.3 將壓縮包移動(dòng)到 /usr/local/mysql/
mv -v mysql-5.7.26-linux-glibc2.12-x86_64 /usr/lcoal/mysql
1.4 創(chuàng)建用戶(hù)組和添加用戶(hù)
groupadd mysql
useradd -r -g mysql mysql
1.5 將安裝目錄所有者及所屬組改為mysql,這個(gè)根據(jù)自己的目錄來(lái)
#chown -R mysql.mysql /usr/local/mysql
1.6 在mysql目錄下創(chuàng)建data文件夾
#mkdir data
1.7 初始化數(shù)據(jù)庫(kù)
#/usr/local/mysql/bin/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data
如果出現(xiàn)以下錯(cuò)誤是因?yàn)?.7版本的初始化命令后面要加 --initialize,如下:
/usr/local/mysql/bin/mysqld --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data --initialize
1.8 編輯配置文件
配置文件地址:/etc/my.cnf
[mysqld]
datadir=/usr/local/mysql/data
basedir=/usr/local/mysql
socket=/tmp/mysql.sock
user=mysql
port=3306
character-set-server=utf8
# 取消密碼驗(yàn)證
//skip-grant-tables
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
1.9 將mysql加入到服務(wù)
#cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
1.10 開(kāi)機(jī)啟動(dòng)
#chkconfig mysql on
1.11 啟動(dòng)mysql
#service mysql start
1.12 設(shè)置密碼
由于在第7步my.cnf配置文件中取消了密碼驗(yàn)證,故登錄mysql不需要密碼驗(yàn)證。
/usr/local/mysql/bin/mysql -uroot
無(wú)密碼登錄之后,修改密碼:
#use mysql;
#update user set authentication_string=password('root') where user='root';
或者#set password=password("root");
#flush privileges;
#exit
1.13 將第7步改為需要密碼驗(yàn)證
1.14 添加遠(yuǎn)程賬戶(hù)
使用root賬戶(hù)登錄,并設(shè)置遠(yuǎn)程登錄賬戶(hù)
GRANT ALL PRIVILEGES ON *.* to 'Alan_beijing'@'%' IDENTIFIED by 'Shanghai2019' WITH GRANT OPTION
1.15 防火墻設(shè)置
方式一:關(guān)閉防火墻
//停止
systemctl stop firewalld.service
//禁止開(kāi)機(jī)啟動(dòng)
systemctl disable firewalld.service
方式二:開(kāi)啟端口
//這里發(fā)現(xiàn)防火墻是開(kāi)啟的,再來(lái)查看防火墻控制的端口
systemctl status firewalld
//查看防火墻控制的端口,發(fā)現(xiàn)我想要監(jiān)聽(tīng)的8081端口沒(méi)有開(kāi)啟
firewall-cmd --list-all
//永久開(kāi)啟3306端口
sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent
//重載防火墻
sudo firewall-cmd --reload
1.16 重啟mysql服務(wù)
service mysql start
1.17 相關(guān)命令
1 .安裝numactl和libaio
yum -y install numactl
yum search libaio
yum install libaio
2.配置環(huán)境變量
export PATH=$PATH:/usr/local/mysql/bin
3.啟動(dòng)服務(wù)
方式一:服務(wù)方式
[root@localhost ~]service mysql start
如果服務(wù)在啟動(dòng)狀態(tài),直接重啟服務(wù)用以下命令:
[root@localhost ~]service mysql restart
方式二:命令行方式
[root@localhost bin]cd /usr/bin
[root@localhost bin]./mysqld_safe &
4.關(guān)閉服務(wù)
方式一:服務(wù)方式
[root@localhost ~]service mysql stop
方式二:命令行方式
[root@localhost ~]mysqladmin -u root shutdown
5.查看服務(wù)
方式一:
[root@localhost bin]ps -ef|grep mysql
方式二:
[root@localhost bin]netstat -nlp
6.進(jìn)程查詢(xún)和殺死
(1) ps -ef |grep redis
ps:將某個(gè)進(jìn)程顯示出來(lái)
-A 顯示所有程序。
-e 此參數(shù)的效果和指定"A"參數(shù)相同。
-f 顯示UID,PPIP,C與STIME欄位。
grep命令是查找
中間的|是管道命令 是指ps命令與grep同時(shí)執(zhí)行
這條命令的意思是顯示有關(guān)redis有關(guān)的進(jìn)程
(2)kill[參數(shù)][進(jìn)程號(hào)]
kill -9 4394
kill就是給某個(gè)進(jìn)程id發(fā)送了一個(gè)信號(hào)。默認(rèn)發(fā)送的信號(hào)是SIGTERM,而kill -9發(fā)送的信號(hào)是SIGKILL,即exit。
exit信號(hào)不會(huì)被系統(tǒng)阻塞,所以kill -9能順利殺掉進(jìn)程。當(dāng)然你也可以使用kill發(fā)送其他信號(hào)給進(jìn)程。
7.查看mysql
方法一:status;
方法二:select version();
2 卸載mysql
2.1 RPM包安裝方式的MySQL卸載
1.檢查是否安裝了MySQL組件
# rpm -qa | grep -i mysql
2.卸載前關(guān)閉MySQL服務(wù)
# service mysql status
# service mysql stop
# service mysql status
3.卸載刪除MySQL各類(lèi)組件
# rpm -ev 組件名
4.收集MySQL對(duì)應(yīng)的文件夾信息
# find / -name mysql
5.收集MySQL對(duì)應(yīng)的文件夾信息
# rm -rf 路徑/文件名
6.刪除mysql用戶(hù)及用戶(hù)組
# more /etc/passwd | grep mysql
# more /etc/shadow | grep mysql
# more /etc/group | grep mysql
# userdel mysql
# groupdel mysql
7.確認(rèn)MySQL是否卸載刪除
# rpm -qa | grep -i mysql
2.2 yum包安裝方式的MySQL安裝
1.查看yum上提供的數(shù)據(jù)庫(kù)可下載版本
# yum list | grep mysql
2.安裝mysql.i686,mysql-devel.i686,mysql-server.i686
# yum -y install mysql mysql-server mysql-devel
3.查看是否開(kāi)機(jī)啟動(dòng)
# chkconfig --list | grep mysqld
4.設(shè)置為開(kāi)機(jī)啟動(dòng)
# chkconfig mysqld on
5.設(shè)置數(shù)據(jù)庫(kù)密碼
# service mysqld start
# mysqladmin -u root -p password 'root'
2.3 service mysql start出錯(cuò):unrecognized service的解決辦法
[[email protected] ~]# service mysql start
mysql: unrecognized service
[[email protected] ~]# service mysql restart
mysql: unrecognized service
[[email protected] ~]# rpm -q mysql 查詢(xún)發(fā)現(xiàn)mysql已經(jīng)正常安裝
mysql-5.1.52-jason.1
[[email protected] ~]# chmod 755 /etc/rc.d/init.d/mysqld 修改mysqld執(zhí)行權(quán)限
[[email protected] ~]# service mysqld start 搞定
Starting mysqld: [ OK ]
[[email protected] ~]# service mysqld status
mysqld (pid 9487) is running...
2.4 Navicat for mysql遠(yuǎn)程連接數(shù)據(jù)庫(kù)詳解(1130錯(cuò)誤解決方法)
1.進(jìn)入MySql控制臺(tái): mysql -u root -p
2.彈出Enter password: 輸入您的數(shù)據(jù)庫(kù)密碼
3.執(zhí)行下命令: GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '您的數(shù)據(jù)庫(kù)密碼' WITH GRANT OPTION;
4.再執(zhí)行下下命令: flush privileges;
5.mysql服務(wù)啟動(dòng)、停止、重啟
(一)啟動(dòng)方式
(1)使用 service 啟動(dòng):service mysqld start
(2)使用 mysqld 腳本啟動(dòng):/etc/inint.d/mysqld start
(3)使用 safe_mysqld 啟動(dòng):safe_mysqld&
(二)停止
(1)使用 service 啟動(dòng):service mysqld stop
(2)使用 mysqld 腳本啟動(dòng):/etc/inint.d/mysqld stop
(3)mysqladmin shutdown
(4)殺掉進(jìn)程:
# ps -ef | grep mysqld
# kill -9 進(jìn)程號(hào)
(三)重啟
(1)(使用 service 啟動(dòng):service mysqld restart
(2)使用 mysqld 腳本啟動(dòng):/etc/inint.d/mysqld restart
6.mysql 查詢(xún)的基本命令
1)查看內(nèi)存
# top
2)mysql的安裝路徑和運(yùn)行路徑
# whereis mysqld
3)PATH變量指定的路徑中,搜索mysql的信息
# which mysqld
4)查看配置文件
# vi /etc/my.cnf
7.解決修改mysql的datadir所引發(fā)的錯(cuò)誤問(wèn)題
1)修改datadir指向的文件路徑
1))復(fù)制默認(rèn)指定路徑里面的文件到新的指定路徑的文件夾中
2))修改指定的文件夾的修改權(quán)限
2)配置Apparmor權(quán)限
1))查看apparmor的配置:# vi /etc/apparmor.d/usr.sbin.mysqld
2))配置新路徑權(quán)限
3)PATH變量指定的路徑中,搜索mysql的信息
1))查看selinux的配置:# vi /etc/selinux/config
2))修改配置: SELINUX=disabled






