Centos7離線rpm安裝MySQL-5.7.29【推薦】
Centos7離線rpm安裝MySQL-5.7.29
一.徹底解除安裝系統原裝的MySQL
1.查詢mysql程式
如果查到的結果不為空,則進入第2步解除安裝mysql
rpm -qa|grep -i mysql
2.解除安裝mysql
#停止mysql服務
systemctl stop mysqld
#刪除軟體命令
rpm -e –nodeps $(rpm -qa|grep -i mysql)
# 如果提示依賴包錯誤,則使用以下命令嘗試:
rpm -ev $(rpm -qa|grep -i mysql) --nodeps
# 如果提示錯誤:error: %preun(xxxxxx) scriptlet failed, exit status 1
# 則用以下命令嘗試:
rpm -e --noscripts $(rpm -qa|grep -i mysql)
3.刪除mysql目錄和檔案
#刪除解除安裝後殘留的mysql的目錄
find / -name mysql #然後使用 rm -rf 將查詢到的目錄全部刪除
#刪除殘留的mysql的配置檔案
rm -rf /etc/my.cnf
rm -rf /etc/my.cnf.d
二.下載rpm安裝包
方式一:使用百度網盤下載:
- 連結:https://pan.baidu.com/s/1Z8NX1IQNni4zykrWvnesig
- 提取碼:275a
方式二:在MySQL官網中找到YUM源rpm安裝包:
下載頁面:https://downloads.mysql.com/archives/community/
具體下載地址:https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.29-1.el7.x86_64.rpm-bundle.tar
上傳並解壓rpm的壓縮包
mkdir -p /baicdt/softwares/mysql_rpm
cd /baicdt/softwares/
# 使用rz命令將下載的tar包上傳到當前目錄 yum -y install lrzsz
# 解壓至/baicdt/softwares/mysql_rpm目錄
tar -xvf /baicdt/softwares/mysql-5.7.29-1.el7.x86_64.rpm-bundle.tar -C /baicdt/softwares/mysql_rpm/
三.安裝mysql
# 進入解壓後的目錄刪除不需要安裝的包
cd /baicdt/softwares/mysql_rpm
擴充套件:各rpm包的作用如下表,我們僅安裝使用到的包即可
NO | 包名 | 作用 | 是否安裝 |
---|---|---|---|
1 | client | MySQL客戶端 | 是 |
2 | common | 服務端和客戶端常用庫檔案 | 是 |
3 | devel | 客戶端開發用的標頭檔案及庫 | 否 |
4 | embedded | 嵌入式版本 | 否 |
5 | embedded-compat | 相容老版本嵌入式的共享庫 | 否 |
6 | embedded-devel | 嵌入式版本的標頭檔案與庫 | 否 |
7 | libs | 資料庫客戶端共享庫 | 是 |
8 | libs-compat | 相容老版本的共享庫 | 是 |
9 | server | 資料庫服務端與相關工具 | 是 |
10 | test | MySQL測試套件 | 否 |
開始安裝:
# 注意:因逐層建存在依賴,安裝順序不要隨意變
cd /baicdt/softwares/mysql_rpm
rpm -ivh mysql-community-common-5.7.29-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.29-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-compat-5.7.29-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.29-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.29-1.el7.x86_64.rpm
# 刪除安裝包後,檢視是否安裝成功
rm -rf /baicdt/softwares/mysql_rpm/* && rpm -qa|grep -i mysql
四.啟動mysql服務
#1.臨時啟動mysql服務
systemctl start mysqld
#2.開機啟動mysql服務
systemctl enable mysqld
#3.檢視MySQL的啟動狀態
systemctl status mysqld
#4.檢視mysql程式是否正常開啟
ps -le | grep mysqld
netstat -ntlp | grep mysqld
五.修改mysql密碼
1.首次登陸mysql
mysql安裝完成之後,在/var/log/mysqld.log
檔案中給root生成了一個預設密碼。通過以下命令找到密碼:
grep 'temporary password' /var/log/mysqld.log
# 使用剛才找到的密碼登入MySQL
mysql -u root -p
-- 修改root使用者密碼(二選一)
set password for 'root'@'localhost'=password('Wsygzgr_2020');
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Wsygzgr_2020';
2.修改密碼策略和預設編碼
生產環境為了安全考慮,不要改密碼策略!!!
測試機環境為了方便記mysql密碼,可選擇下面的方案①:
vim /etc/my.cnf
在配置檔案中新增下面的內容:
#因為伺服器是測試環境,為了方便記mysql密碼,關閉了密碼策略。如果是生產環境,則不建議修改密碼策略
validate_password=off
character_set_server=utf8
init_connect='SET NAMES utf8'
重新啟動mysql服務使配置生效:
systemctl restart mysqld
#登陸mysql
mysql -u root -pWsygzgr_2020
修改root使用者密碼為123456
set password for 'root'@'localhost'=password('123456');
MySQL預設配置檔案路徑:
- 配置檔案: /etc/my.cnf
- 日誌檔案: /var/log//var/log/mysqld.log
- 服務啟動指令碼: /usr/lib/systemd/system/mysqld.service
- socket檔案: /var/run/mysqld/mysqld.pid
3.使用者遠端登入配置
mysql預設只允許root帳戶在本地登入,想要遠端連線mysql,必須開啟root使用者允許遠端連線,或者新增一個允許遠端連線的帳戶。
開啟root使用者遠端連線(任意IP都可以訪問)
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
FLUSH PRIVILEGES;
擴充套件:
-
指定特定的IP,開啟root使用者遠端連線
GRANT ALL PRIVILEGES ON . TO 'root'@'指定的IP' IDENTIFIED BY 'root使用者的密碼' WITH GRANT OPTION; FLUSH PRIVILEGES;
-
一般為了安全起見,會建立專用的遠端訪問使用者
GRANT ALL PRIVILEGES ON *.* TO 'dadeity'@'%' IDENTIFIED BY 'daDeity@163.com' WITH GRANT OPTION; FLUSH PRIVILEGES;
六.修改MySQL預設編碼
編輯 vim /etc/my.cnf
配置檔案,新增如下配置:
character_set_server=utf8
init_connect='SET NAMES utf8'
重啟MySQL服務
systemctl restart mysqld
# 登陸mysql
mysql -uroot -p123456
檢視MySQL預設編碼確認是否修改成功:
show variables like 'char%';
檢視排序規則
show variables like 'collation%';
七.忘記root使用者密碼解決方案
編輯 vim /etc/my.cnf
配置檔案,新增如下配置:
[mysqld]
skip-grant-tables
重啟mysql,並不使用密碼登入mysql
systemctl restart mysqld
mysql -u root
修改root使用者的密碼
update mysql.user set authentication_string=password('123456') where user='root' and Host = 'localhost';
flush privileges
設定好密碼後再刪掉
/etc/my.cnf
中的skip-grant-tables
配置項,並重啟mysql
八.建立新使用者
-- 建立新使用者
CREATE USER '新使用者名稱'@'%'IDENTIFIED BY '設定新使用者的密碼';
-- 把資料庫的訪問許可權給新使用者
GRANT ALL PRIVILEGES ON 資料庫名.* TO '使用者名稱'@'%' IDENTIFIED BY '密碼';
-- 給新使用者開啟所有遠端訪問許可權
GRANT ALL PRIVILEGES ON *.* TO '使用者名稱'@'%' IDENTIFIED BY '密碼' WITH GRANT OPTION;
-- 重新整理mysql的許可權列表
FLUSH PRIVILEGES;
九.開啟binlog日誌
binlog日誌簡單介紹:
- 用來記錄mysql中的 增加 、 刪除 、 修改 操作
- select操作 不會 儲存到binlog中
- 必須要 開啟 mysql中的binlog功能,才會生成binlog日誌
- binlog日誌就是一系列的二進位制檔案
編輯 vim /etc/my.cnf
配置檔案,新增如下配置:
log-bin=/var/lib/mysql/mysql-bin
binlog-format=ROW
server_id=1
# 配置說明
# 1、配置binlog日誌的存放路徑為/var/lib/mysql目錄,檔案以mysql-bin開頭
# 2、配置mysql中每一行記錄的變化都會詳細記錄下來
# 3、配置當前機器器的服務ID(如果是mysql叢集,不能重複)
配置說明:
- 配置binlog日誌的存放路徑為/var/lib/mysql目錄,檔案以mysql-bin開頭
- 配置mysql中每一行記錄的變化都會詳細記錄下來
- 配置當前機器器的服務ID(如果是mysql叢集,不能重複)
重啟mysql並登入
systemctl restart mysqld
mysql -u root -p123456
登入mysql執行以下SQL命令檢視配置是否生效
show variables like '%log_bin%';
mysql輸出以下內容,表示binlog已經成功開啟
+---------------------------------+--------------------------------+
| Variable_name | Value |
+---------------------------------+--------------------------------+
| log_bin | ON |
| log_bin_basename | /var/lib/mysql/mysql-bin |
| log_bin_index | /var/lib/mysql/mysql-bin.index |
| log_bin_trust_function_creators | OFF |
| log_bin_use_v1_row_events | OFF |
| sql_log_bin | ON |
+---------------------------------+--------------------------------+
6 rows in set (0.00 sec)
檢視生產的binlog日誌,為二進位制格式
[root@core01 ~]# cd /var/lib/mysql
[root@core01 mysql]# ll -ah | grep mysql-bin.000001
-rw-r----- 1 mysql mysql 154 Jul 17 10:36 mysql-bin.000001
十.主從複製配置
安裝環境:
主(Master) centos7:192.168.52.100
從(Slave) centos7:192.168.52.110
1. Master的配置
vim /etc/my.cnf
配置的內容為:
#主節點開啟二進位制日誌功能
log-bin=mysql-bin
#標識唯一id(必須),一般使用ip最後位
server-id=100
#不需要同步的資料庫,可設定多個
binlog-ignore-db=information_schema
binlog-ignore-db=mysql
#指定需要同步的資料庫,可以設定多個
binlog-do-db=test
binlog-do-db=demo
修改完配置,重啟mysql
systemctl restart mysqld
#進入Mysql
mysql -u root -p123456
賦予從庫許可權帳號,允許使用者在主庫上讀取日誌,賦予192.168.52.110也就是Slave機器有File許可權,只賦予Slave機器有File許可權還不行,還要給它REPLICATION SLAVE的許可權才可以。
GRANT FILE ON *.* TO 'root'@'192.168.52.110' IDENTIFIED BY '123456';
GRANT REPLICATION SLAVE ON *.* TO 'root'@'192.168.52.110' IDENTIFIED BY '123456';
FLUSH PRIVILEGES;
重啟Mysql後檢視主庫資訊
show master status;
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-s803tMbk-1605500249803)(…/…/AppData/Roaming/Typora/typora-user-images/image-20200403123526928.png)]
這裡的 File 、Position 是在配置Salve的時候要使用到的,Binlog_Do_DB表示要同步的資料庫,Binlog_Ignore_DB 表示Ignore的資料庫,這些都是在配置的時候進行指定的。
另外:如果執行這個步驟始終為Empty set(0.00 sec),那說明前面的my.cnf沒配置對。
2. Slave的配置
vim /etc/my.cnf
配置的內容為:
#主節點開啟二進位制日誌功能
log-bin=mysql-bin
#標識唯一id(必須),一般使用ip最後位
server-id=110
#指定不需要複製的資料庫(與主節點binlog-ignore-db要一一對應)
replicate-ignore-db=information_schema
replicate-ignore-db=mysql
#指定需要同步的資料庫(與主節點binlog-ignore-db要一一對應)
replicate-do-db=test
replicate-do-db=demo
#此選項告訴從屬伺服器將其SQL執行緒執行的更新記錄到其自己的二進位制日誌中。
log-slave-updates
#跳過所有錯誤
slave-skip-errors=all
slave-net-timeout=60
修改完配置,重啟mysql
systemctl restart mysqld
#進入Mysql
mysql -u root -p123456
STOP SLAVE;
CHANGE MASTER TO MASTER_HOST='192.168.52.100',MASTER_USER='root',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysql-bin.000002', MASTER_LOG_POS=154;
-- 開啟Slave
START SLAVE;
在這裡指定Master的資訊,master_log_file是在配置Master的時候的File選項, master_log_pos是在配置Master的Position 選項,這裡要進行對應。
檢視配置的資訊:
SHOW SLAVE STATUS \G;
當查詢結果中包含下面兩行結果,則表示配置成功了
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
對主庫做增刪改操作,驗證從庫資料同步情況。
相關文章
- CentOS7離線安裝(rpm安裝)mysql資料庫CentOSMySql資料庫
- rpm方式離線安裝ansible
- CentOS7離線安裝Mysql8.0.18CentOSMySql
- centos7下rpm方式安裝mysqlCentOSMySql
- 在Linux(Redhat/CentOS)下安裝MySQL之yum(rpm)離線安裝方式LinuxRedhatCentOSMySql
- Centos7 離線安裝 KVM,並安裝 Csr1000vCentOS
- Linux下Centos7以rpm方式離線安裝MySQL5.7教程以及部分報錯解決方案LinuxCentOSMySql
- 離線安裝 dockerDocker
- 離線安裝dockerDocker
- nuget離線安裝
- 【推薦 - glibc安裝】MySQL - 安裝MySql
- 【推薦 - 原始碼安裝】nginx - 安裝原始碼Nginx
- CentOS7(64)環境使用rpm命令安裝gccCentOSGC
- Linux RPM安裝及查詢下載(--推薦個軟體倉庫)Linux
- 離線安裝ansible
- CentOS離線安裝NginxCentOSNginx
- 離線安裝 Apache AmbariApache
- centos6.5環境使用RPM包離線安裝MariaDB 10.0.20CentOS
- KubeSphere 3.3.0 離線安裝教程
- CDH6 離線安裝
- 如何離線安裝GitHub for windows?GithubWindows
- Cloudera Manager 離線安裝教程Cloud
- linux離線安裝redisLinuxRedis
- 離線安裝net6
- Linux離線安裝SVNLinux
- Ubuntu下離線安裝PostgreSQLUbuntuSQL
- linux離線安裝nginxLinuxNginx
- SUSE12Sp3安裝配置.net core 生產環境(6)-RPM離線安裝配置mysql5.7MySql
- linux RPM包下載地址推薦Linux
- RHEL7/CentOS7線上和離線安裝GitLab配置使用實踐CentOSGitlab
- Docker 離線安裝 & 離線私有倉庫搭建總結Docker
- 寶塔皮膚離線版部署-離線版如何安裝?
- CentOS7離線部署JDKCentOSJDK
- Vs Code推薦安裝外掛
- [推薦]Vue-devtools安裝Vuedev
- 電腦軟體推薦安裝
- mysql安裝(rpm)MySql
- RPM 解除安裝