CentOS 7.x 卸載刪除MariaDB,重新安裝,安裝MYSQL離線版和源代碼


CentOS 7.x 卸載刪除MariaDB

1、卸載

[root@node1 ~]# rpm -qa|grep mariadb
mariadb-5.5.56-2.el7.x86_64
mariadb-libs-5.5.56-2.el7.x86_64
mariadb-server-5.5.56-2.el7.x86_64
[root@node1 ~]#

用yum進行卸載:

[root@node1 ~]# yum remove mariadb
...
Removed:
  mariadb.x86_64 1:5.5.56-2.el7                                                                                                                  

Dependency Removed:
  mariadb-server.x86_64 1:5.5.56-2.el7                                                                                                           

Complete!
[root@node1 ~]#

卸載完畢之后發現還有lib沒有移除掉,直接卸載:

[root@localhost mysql-5.7.28-linux-glibc2.12-x86_64]# rpm -qa | grep mariadb
mariadb-libs-5.5.64-1.el7.x86_64
[root@localhost mysql-5.7.28-linux-glibc2.12-x86_64]# rpm -e --nodeps mariadb-libs-5.5.64-1.el7.x86_64

 

2、刪除遺留目錄

[root@node1 ~]# ls /etc/my.cnf
/etc/my.cnf
[root@node1 ~]# ll /var/lib/mysql/
total 28700
-rw-rw---- 1 mysql mysql    16384 May  5 10:31 aria_log.00000001
-rw-rw---- 1 mysql mysql       52 May  5 10:31 aria_log_control
-rw-rw---- 1 mysql mysql 18874368 May  5 10:31 ibdata1
-rw-rw---- 1 mysql mysql  5242880 May  5 10:31 ib_logfile0
-rw-rw---- 1 mysql mysql  5242880 Oct  6  2017 ib_logfile1
drwx------ 2 mysql mysql     4096 Oct  6  2017 mysql
drwx------ 2 mysql mysql     4096 Oct  6  2017 performance_schema
[root@node1 ~]#

[root@node1 ~]# rm -rf /etc/my.cnf
[root@node1 ~]# rm -rf /var/lib/mysql/

3、重新安裝

[root@node1 ~]# yum install -y mariadb mariadb-server
[root@node1 ~]# systemctl start mariadb
[root@node1 ~]# systemctl enable mariadb
[root@node1 ~]# mysql_secure_installation

安裝MYSQL離線版本

 1. 檢測mysql是否有相關文件,有的話進行卸載:

[root@localhost mysql-5.7.28-linux-glibc2.12-x86_64]# rpm -qa | grep mysql
qt-mysql-4.8.7-3.el7_6.x86_64
[root@localhost mysql-5.7.28-linux-glibc2.12-x86_64]# rpm -e --nodeps qt-mysql-4.8.7-3.el7_6.x86_64

2.檢查mysql組合用戶是否存在:

# 檢查mysql組和用戶是否存在,如無則創建
[root@CDH-141 ~]# cat /etc/group | grep mysql
[root@CDH-141 ~]# cat /etc/passwd | grep mysql 

如果存在mysql組,則不需要新增,那么不存在mysql組,就需要新增一個mysql組:

[root@localhost ~]# groupadd mysql

如果存在mysql用戶,則不需要新增,那么不存在mysql用戶,就需要新增一個mysql用戶:

[root@localhost ~]# useradd -g mysql mysql

修改mysql用戶的密碼:

[root@localhost ~]# passwd mysql
更改用戶 mysql 的密碼 。
新的 密碼:
無效的密碼: 密碼少於 8 個字符
重新輸入新的 密碼:
抱歉,密碼不匹配。
新的 密碼:
無效的密碼: 密碼包含用戶名在某些地方
重新輸入新的 密碼:
抱歉,密碼不匹配。
新的 密碼:
無效的密碼: 密碼未通過字典檢查 - 過於簡單化/系統化
重新輸入新的 密碼:
抱歉,密碼不匹配。
passwd: 已經超出服務重試的最多次數

 3. 下載離線包

https://dev.mysql.com/downloads/mysql/

4. 上傳離線包

[root@localhost src]# pwd
/usr/local/src
[root@localhost src]# rz

解壓離線包

[root@localhost src]# tar -zxvf mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz

修改解壓包的名稱,並移動到/usr/local目錄下去

[root@localhost src]# mv mysql-5.7.28-linux-glibc2.12-x86_64 /usr/local/mysql

5. 更改mysql文件夾的所屬組和所屬用戶為mysql.mysql:

# 更改所屬的組和用戶
[root@CDH-141 local]# chown -R mysql.mysql mysql/
[root@CDH-141 local]# cd mysql/
[root@CDH-141 mysql57]# mkdir data
[root@CDH-141 mysql57]# chown -R mysql.mysql data

6.在/etc/目錄下創建一個my.cnf文件:參考:https://www.cnblogs.com/jiangxiaobo/p/11734294.html

[mysql]
# 設置mysql客戶端默認字符集
default-character-set=utf8 
socket=/var/lib/mysql/mysql.sock

[mysqld]
skip-name-resolve
# 設置3306端口
port = 3306 
socket=/var/lib/mysql/mysql.sock
# 設置mysql的安裝目錄
basedir=/usr/local/mysql
# 設置mysql數據庫的數據的存放目錄
datadir=/usr/local/mysql/data
# 允許最大連接數
max_connections=200
# 服務端使用的字符集默認為8比特編碼的latin1字符集
character-set-server=utf8
# 創建新表時將使用的默認存儲引擎
default-storage-engine=INNODB
# 解決表名大小寫問題 lower_case_table_names
=1 max_allowed_packet=16M

 注意這個步驟必須要創建 socket所在目錄

mkdir /var/lib/mysql/

basedir肯datadir按自己實際需求的配置。

其他默認配置參考:

[root@localhost ~]# ps -ef | grep mysql
root       1640      1  0 22:06 ?        00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe 
--datadir=/usr/local/mysql/data
--pid-file=/usr/local/mysql/data/localhost.localdomain.pid mysql 1844 1640 1 22:06 ? 00:00:00 /usr/local/mysql/bin/mysqld
--basedir=/usr/local/mysql
--datadir=/usr/local/mysql/data
--plugin-dir=/usr/local/mysql/lib/plugin
--user=mysql
--log-error=localhost.localdomain.err
--pid-file=/usr/local/mysql/data/localhost.localdomain.pid

 

 查看mysql服務啟動時候讀取配置文件列表

1.首先通過which mysqld查找到該mysqld路徑,然后cd到該目錄。

2.鍵入 mysqld --verbose --help |grep -A 1 'Default options'命令來查看mysql使用的配置文件默認路徑

windows下查看mysql讀取配置文件的目錄
mysql --help | findstr my.cnf


linux下查看mysql讀取配置文件的目錄
mysql --help | grep 'mysql\.cnf'

 

 

7.進入mysql文件夾安裝mysql:

其實只需要命令:

bin/mysqld --initialize --user=mysql

但是也可以補充,未補充的配置讀取/etc/my.cnf文件

[root@localhost mysql57]# bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/
2020-02-20T14:27:21.844182Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2020-02-20T14:27:23.526945Z 0 [Warning] InnoDB: New log files created, LSN=45790
2020-02-20T14:27:23.705978Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2020-02-20T14:27:23.800981Z 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: 1c750f6b-53ed-11ea-bc05-000c29d18f42.
2020-02-20T14:27:23.803068Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2020-02-20T14:27:24.224645Z 0 [Warning] CA certificate ca.pem is self signed.
2020-02-20T14:27:24.380345Z 1 [Note] A temporary password is generated for root@localhost: p&fI(feaA6-=

安裝成功了,關於后續操作請參考之前在線安裝Mysql細節:https://www.cnblogs.com/jiangxiaobo/p/11734294.html

1、授予my.cnf權限
chmod 777 /etc/my.cnf
設置開機自啟動服務控制腳本:
2、復制啟動腳本到資源目錄
cd /usr/local/mysql
[root@localhost mysql]# cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld
3、增加mysqld服務控制腳本執行權限 
[root@localhost mysql]# chmod +x /etc/rc.d/init.d/mysqld
4、將mysqld服務加入到系統服務 
[root@localhost mysql]# chkconfig --add mysqld
5、檢查mysqld服務是否已經生效
[root@localhost mysql]# chkconfig --list mysqld
命令輸出類似下面的結果:
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
表明mysqld服務已經生效,在2、34、5運行級別隨系統啟動而自動啟動,以后可以使用service命令控制mysql的啟動和停止
命令為:service mysqld start和service mysqld stop
6、啟動mysqld 
[root@localhost mysql]# service mysqld start
或者
/etc/rc.d/init.d/mysql start

7、將mysql的bin目錄加入PATH環境變量,編輯 ~/.bash_profile文件
[root@localhost mysql]# vim ~/.bash_profile
在文件最后添加如下信息:
export PATH=$PATH:/usr/local/lnmp/mysql/bin
執行下面的命令是修改的內容立即生效:
[root@localhost mysql]# source ~/.bash_profile
8、以root賬戶登錄mysql
[root@localhost mysql]# mysql -uroot -p
要輸入密碼的時候直接回車即可。
9、設置root賬戶密碼為root(也可以修改成你要的密碼)
set password for root@localhost=password("你的密碼");
如果忘記密碼:請在配置文件加上
[mysqld]
# 忘記密碼請解開下面注釋
# skip-grant-tables
密碼修改后,將這行配置注釋掉重啟就可以了。

 

創建系統服務,系統自啟動

10、設置遠程主機登錄,注意下面的your username 和 your password改成你需要設置的用戶和密碼

mysql>GRANT ALL PRIVILEGES ON *.* TO 'your username'@'%' IDENTIFIED BY 'your password' WITH GRANT OPTION;

host xxx is not allowed to connect to this MYSQL server關於細節請查看:https://www.cnblogs.com/lizm166/p/7838862.html

你想root使用123456從任何主機連接到mysql服務器的話,代碼如下:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

如果你想允許用戶root從ip為192.168.1.3的主機連接到mysql服務器,並使用123456作為密碼,代碼如下:
GRANT ALL PRIVILEGES ON *.* TO ‘root’@’192.168.1.3′ IDENTIFIED BY ’123456′ WITH GRANT OPTION;

 Mysql> flush privileges

11. 如果自己想建立MYSQL用戶:

【如果記得root的賬號密碼,就可以不設置這步】設置跳過密碼登陸root用戶

vim /etc/my.cnf

[mysqld]
# 忘記密碼請解開下面注釋
# skip-grant-tables

登陸

mysql -u root -p

完成以上流程就實現了一個基本的用戶生成並配置權限,如果需要控制用的CURD操作更改相關的權限即可

1、創建用戶:CREATE USER 'username'@'host' IDENTIFIED BY 'password';

username:用戶名;

host:指定在哪個主機上可以登錄,本機可用localhost,%通配所有遠程主機;

password:用戶登錄密碼;

舉例:
CREATE USER 'test'@'%' IDENTIFIED BY 'I6FVIavxZl8Dkjhn';


2、授權:GRANT ALL PRIVILEGES ON  *.* TO 'username'@'%' IDENTIFIED BY 'password’;

格式:grant 權限 on 數據庫名.表名 to 用戶@登錄主機 identified by "用戶密碼"*.* 代表所有權;

@ 后面是訪問MySQL的客戶端IP地址(或是 主機名) % 代表任意的客戶端,如果填寫 localhost 為本地訪問(那此用戶就不能遠程訪問該mysql數據庫了)。

舉例:

GRANT ALL PRIVILEGES ON  *.* TO 'test'@'%' IDENTIFIED BY 'I6FVIavxZl8Dkjhn'; #任意客戶端可以,但是本地是不能連接的,所以還需要一句
GRANT ALL PRIVILEGES ON  *.* TO 'test'@'localhost' IDENTIFIED BY 'I6FVIavxZl8Dkjhn'; #執行這兩句話,才能讓test用戶即可以在不同客戶端和本地進行使用MYSQL



3、刷新權限:FLUSH PRIVILEGES;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM