RedHat/CentOS8【MySQL8】安裝柄慰、配置和管理

MySQL8 是一款功能強(qiáng)大且開源的(遵循GPL協(xié)議)關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(RDBMS)藏研。

本方案基于CentOS8系統(tǒng)設(shè)計,建議在RedHat/CentOS系統(tǒng)中使用袒哥。


1.MySQL8 的安裝

1、打開 MySQL8 官方網(wǎng)站下載頁面【https://dev.mysql.com/downloads/repo/yum/】艺演,下載并安裝 yum 源到用戶主目錄中。

MySQL8 下載頁面
[centos@host ~]$ sudo rpm -ivh mysql80-community-release-el8-1.noarch.rpm

注意:如果使用本地或私有yum源伤提,可忽略本步驟,直接獲取本地/私有yum源的配置文件使用即可舶沛。有關(guān)如何進(jìn)行yum源的本地化/私有化如庭,請閱讀文章《RedHat/CentOS8 【國內(nèi)/本地/私有 YUM 源】制作和使用》,文章地址【http://www.reibang.com/p/68db74388600】往毡。

2卖擅、禁用系統(tǒng)內(nèi)置 yum 源的 MySQL 安裝模塊。

CentOS8 的內(nèi)置 yum 源中已經(jīng)提供 MySQL 安裝模塊(但比官方提供的版本要舊),而在執(zhí)行安裝命令時惩阶,內(nèi)置 yum 源的優(yōu)先級高于其他 yum 源挎狸,因此要禁用內(nèi)置 yum 源的 MySQL 安裝模塊。

[centos@host ~]$ sudo dnf module disable mysql

3断楷、安裝 MySQL8 的服務(wù)器端程序锨匆。

[centos@host ~]$ sudo dnf install mysql-server mysql

注意:程序文件在"/usr/bin"目錄中,配置文件是"/etc/my.cnf"冬筒,套接字文件在"/var/lib/mysql"目錄中恐锣,運(yùn)行時文件在"/var/run/mysqld"目錄中响牛,日志文件在"/var/log"目錄中,程序運(yùn)行用戶和組是"mysql:mysql","mysql"用戶和組安裝時默認(rèn)創(chuàng)建。


2.MySQL8 的配置

1暮屡、設(shè)置數(shù)據(jù)庫實例的數(shù)據(jù)存儲目錄莺掠。

數(shù)據(jù)庫實例的默認(rèn)數(shù)據(jù)存儲目錄是"/var/lib/mysql"。"/var"是一個系統(tǒng)目錄,不宜存放大量業(yè)務(wù)數(shù)據(jù),通常的解決方案是在系統(tǒng)中掛載一塊數(shù)據(jù)盤,專門用于存儲業(yè)務(wù)數(shù)據(jù)博肋。因此需要在初始化數(shù)據(jù)庫實例之前設(shè)置數(shù)據(jù)存儲目錄掘猿。假設(shè)本例中使用"/data"目錄掛載數(shù)據(jù)盤,具體操作如下:

創(chuàng)建數(shù)據(jù)存儲目錄、錯誤日志目錄、數(shù)據(jù)備份目錄,并設(shè)置所有者用戶和組為"mysql:mysql","mysql"用戶和組在安裝 MySQL8 時已創(chuàng)建。

[centos@host ~]$ sudo mkdir -p /data/mysql/data
[centos@host ~]$ sudo mkdir -p /data/mysql/log
[centos@host ~]$ sudo mkdir -p /data/mysql/backup
[centos@host ~]$ sudo chown -R mysql:mysql /data/mysql

2赋秀、設(shè)置 MySQL8 數(shù)據(jù)庫配置文件參數(shù)樟遣。

使用文本編輯器打開配置文件:

[centos@host ~]$ sudo gedit /etc/my.cnf

修改或驗證文件中的以下參數(shù)并保存:

[mysqld]

# 數(shù)據(jù)存儲目錄,默認(rèn)是/var/lib/mysql文搂。建議存儲到數(shù)據(jù)盤中然遏。
datadir=/data/mysql/data

# 日志文件位置怨酝,默認(rèn)是/var/log/mysqld.log。建議存儲到數(shù)據(jù)盤中汤纸。
log-error=/data/mysql/log/mysqld.log

# 套接字文件位置囊蓝,默認(rèn)是/var/lib/mysql/mysql.sock运杭。
socket=/var/lib/mysql/mysql.sock

# 運(yùn)行時文件位置,默認(rèn)是/var/run/mysqld/mysqld.pid。
pid-file=/var/run/mysqld/mysqld.pid

# 服務(wù)運(yùn)行管理賬戶困曙,默認(rèn)是mysql。
# user=mysql

# 服務(wù)監(jiān)聽端口號车柠,默認(rèn)是3306令花。
# port=3306

# 跳過 IP 地址反向解析域名尤揣,默認(rèn)不啟用蠕嫁。
# skip-name-resolve

# 跳過身份認(rèn)證,默認(rèn)不啟用酸休。
# skip-grant-tables

# 跳過遠(yuǎn)程鏈接是目,默認(rèn)不啟用戏罢。
# skip-networking

3、設(shè)置數(shù)據(jù)庫實例超級管理員賬戶"mysql"的口令。MySQL8 安裝完成后"mysql"的默認(rèn)口令為空,為空時無法使用該用戶在本地登錄數(shù)據(jù)庫裸影。

[centos@host  ~]$ sudo passwd mysql
更改用戶 mysql 的密碼 葫慎。
新的 密碼:
重新輸入新的 密碼:
passwd:所有的身份驗證令牌已經(jīng)成功更新湖苞。

4、在SELinux模式運(yùn)行時,設(shè)置自定義目錄的安全標(biāo)記和安全策略滚粟。

[centos@host ~]$ sudo semanage fcontext -a -t mysqld_db_t "/data/mysql/data(/.*)?"
[centos@host ~]$ sudo semanage fcontext -a -t mysqld_log_t "/data/mysql/log(/.*)?"
[centos@host ~]$ sudo restorecon -Rv /data/mysql/data
[centos@host ~]$ sudo restorecon -Rv /data/mysql/log

5滞谢、修改或驗證 MySQL8 開機(jī)啟動服務(wù)配置文件清寇。

使用文本編輯器打開配置文件:

[centos@host ~]$ sudo gedit /usr/lib/systemd/system/mysqld.service

修改或驗證文件中的以下參數(shù)并保存:

[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target

[Install]
WantedBy=multi-user.target

[Service]
User=mysql
Group=mysql

Type=notify

# Disable service start and stop timeout logic of systemd for mysqld service.
TimeoutSec=0

# Execute pre and post scripts as root
PermissionsStartOnly=true

# Needed to create system tables
ExecStartPre=/usr/bin/mysqld_pre_systemd

# Start main service
ExecStart=/usr/sbin/mysqld $MYSQLD_OPTS

# Use this to switch malloc implementation
EnvironmentFile=-/etc/sysconfig/mysql

# Sets open_files_limit
LimitNOFILE = 10000

Restart=on-failure

RestartPreventExitStatus=1

# Set enviroment variable MYSQLD_PARENT_PID. This is required for restart.
Environment=MYSQLD_PARENT_PID=1

PrivateTmp=false

6、啟動數(shù)據(jù)庫實例服務(wù)赏表,并設(shè)置為開機(jī)自動啟動鉴象。

[centos@host ~]$ sudo systemctl daemon-reload
[centos@host ~]$ sudo systemctl start mysqld.service
[centos@host ~]$ sudo systemctl enable mysqld.service

7、開啟遠(yuǎn)程訪問策略捆姜。

1)設(shè)置防火墻端口(CentOS8默認(rèn)安裝firewall防火墻)传趾,允許"3306"端口(MySQL 默認(rèn)端口)訪問服務(wù)器。

[centos@host ~]$ sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent
[centos@host ~]$ sudo firewall-cmd --reload

2)在SELinux模式運(yùn)行時泥技,開啟遠(yuǎn)程訪問安全策略浆兰。

[centos@host ~]$ sudo setsebool -P mysql_connect_any 1

8、設(shè)置數(shù)據(jù)庫超級管理員"root"賬號的口令珊豹。

【首選方案(已安裝 mysql-client 時可用)】

1)初始化 "root" 賬號的口令簸呈。

[centos@host ~]$ mysqladmin -u root password "password"

2)使用"root"賬號登錄客戶端,設(shè)置新的口令和策略店茶。密碼要包含大寫字母蜕便,小寫字母,數(shù)字贩幻,特殊符號轿腺。

[centos@host ~]$ mysql -u root -p
Enter password:

# 初始化root賬號本地登錄的口令两嘴。
# 格式:alter user '<賬號>'@'<客戶端IP策略>' identified by '<登錄密碼>';
# 說明:
# <客戶端IP策略>可以使用通配符”%”,也可以指定具體IP地址或地址段吃溅,如:
# 允許全部遠(yuǎn)程地址訪問溶诞,設(shè)置為:”%”;
# 允許IP地址訪問,設(shè)置為:”192.168.0.1”;
# 允許IP地址段訪問决侈,設(shè)置為:”192.168.0.%”。
mysql> alter user 'root'@'localhost' identified by 'password';

# 創(chuàng)建root賬號遠(yuǎn)程登錄的策略和口令喧务。
# 格式:create user '<賬號>'@'<客戶端IP策略>' identified with mysql_native_password by '<登錄密碼>';
# 說明:
# <客戶端IP策略>可以使用通配符”%”赖歌,也可以指定具體IP地址或地址段,如:
# 允許全部遠(yuǎn)程地址訪問功茴,設(shè)置為:”%”;
# 允許IP地址訪問庐冯,設(shè)置為:”192.168.0.1”;
# 允許IP地址段訪問,設(shè)置為:”192.168.0.%”坎穿。
# with mysql_native_password 表示設(shè)置的口令可同時用于遠(yuǎn)程訪問(不指定時用于本地訪問)展父。
mysql> create user 'root'@'%' identified with mysql_native_password by 'password';

# 格式:grant all privileges on <庫名>.<表名> to '<用戶名>'@'<客戶端IP策略>';
# 說明:
# <庫名>和<表名>可以使用通配符”*”代替,表示全部數(shù)據(jù)庫或全部表玲昧;
# <客戶端IP策略>可以使用通配符”%”栖茉,也可以指定具體IP地址或地址段,如:
# 允許全部遠(yuǎn)程地址訪問孵延,設(shè)置為:”%”;
# 允許IP地址訪問吕漂,設(shè)置為:”192.168.0.1”;
# 允許IP地址段訪問,設(shè)置為:”192.168.0.%”尘应。
mysql> grant all on *.* to 'root'@'%';

# 刷新用戶權(quán)限惶凝。
mysql> flush privileges;

# 連接 mysql 數(shù)據(jù)庫,默認(rèn)數(shù)據(jù)庫犬钢。
mysql>use mysql;

# 查詢已有的策略苍鲜。
mysql> select user,host,authentication_string from user\G;

# 退出客戶端。
mysql> exit;

【備選方案(未安裝 mysql-client 時可用)】

MySQL數(shù)據(jù)庫安裝后玷犹,因"root"賬號未設(shè)置口令所以無法遠(yuǎn)程登錄混滔,需要在服務(wù)器上臨時使用本地用戶免密登錄后設(shè)置"root"賬號的口令才能正常使用。

注意:本地用戶免密登錄和遠(yuǎn)程登錄不可共同開啟箱舞。

1)使用文本編輯器打開配置文件遍坟,修改或驗證文件中的以下參數(shù)并保存。

[centos@host ~]$ sudo gedit /etc/my.cnf
[mysqld]
# 開啟以下兩項設(shè)置后晴股,僅能夠通過本地訪問數(shù)據(jù)庫愿伴,使用超級管理員身份登錄且不需要進(jìn)行身份認(rèn)證。

# 跳過身份認(rèn)證电湘,默認(rèn)不啟用隔节。
skip-grant-tables

# 跳過遠(yuǎn)程鏈接鹅经,默認(rèn)不啟用。
skip-networking

2)重新啟動服務(wù)怎诫。

[centos@host ~]$ sudo systemctl restart mysqld.service

3)免密登錄客戶端并清除"root"賬號口令瘾晃。

[centos@host ~]$ mysql
# 連接 mysql 數(shù)據(jù)庫,默認(rèn)數(shù)據(jù)庫幻妓。
mysql>use mysql;

# 更新 root 賬號口令為空(不能設(shè)置其他口令)蹦误。
mysql>update user set authentication_string='' where user='root';

# 退出客戶端。
mysql> exit;

4)使用文本編輯器打開配置文件肉津,修改或驗證文件中的以下參數(shù)并保存强胰。

[centos@host ~]$ sudo gedit /etc/my.cnf
[mysqld]
# 開啟以下兩項設(shè)置后,僅能夠通過本地訪問數(shù)據(jù)庫妹沙,使用超級管理員身份登錄且不需要進(jìn)行身份認(rèn)證偶洋。

# 跳過身份認(rèn)證,默認(rèn)不啟用距糖。
# skip-grant-tables

# 跳過遠(yuǎn)程鏈接玄窝,默認(rèn)不啟用。
# skip-networking

5)重新啟動服務(wù)悍引。

[centos@host ~]$ sudo systemctl restart mysqld.service

6)使用"root"賬號登錄客戶端恩脂,設(shè)置新的口令和策略。密碼要包含大寫字母吗铐,小寫字母东亦,數(shù)字,特殊符號唬渗。

[centos@host ~]$ mysql -u root

# 初始化root賬號本地登錄的口令典阵。
# 格式:alter user '<賬號>'@'<客戶端IP策略>' identified by '<登錄密碼>';
# 說明:
# <客戶端IP策略>可以使用通配符”%”,也可以指定具體IP地址或地址段镊逝,如:
# 允許全部遠(yuǎn)程地址訪問壮啊,設(shè)置為:”%”;
# 允許IP地址訪問,設(shè)置為:”192.168.0.1”;
# 允許IP地址段訪問撑蒜,設(shè)置為:”192.168.0.%”歹啼。
mysql> alter user 'root'@'localhost' identified by 'password';

# 創(chuàng)建root賬號遠(yuǎn)程登錄的策略和口令。
# 格式:create user '<賬號>'@'<客戶端IP策略>' identified with mysql_native_password by '<登錄密碼>';
# 說明:
# <客戶端IP策略>可以使用通配符”%”座菠,也可以指定具體IP地址或地址段狸眼,如:
# 允許全部遠(yuǎn)程地址訪問,設(shè)置為:”%”;
# 允許IP地址訪問浴滴,設(shè)置為:”192.168.0.1”;
# 允許IP地址段訪問拓萌,設(shè)置為:”192.168.0.%”。
# with mysql_native_password 表示設(shè)置的口令可同時用于遠(yuǎn)程訪問(不指定時用于本地訪問)升略。
mysql> create user 'root'@'%' identified with mysql_native_password by 'password';

# 格式:grant all privileges on <庫名>.<表名> to '<用戶名>'@'<客戶端IP策略>';
# 說明:
# <庫名>和<表名>可以使用通配符”*”代替微王,表示全部數(shù)據(jù)庫或全部表屡限;
# <客戶端IP策略>可以使用通配符”%”,也可以指定具體IP地址或地址段炕倘,如:
# 允許全部遠(yuǎn)程地址訪問钧大,設(shè)置為:”%”;
# 允許IP地址訪問,設(shè)置為:”192.168.0.1”;
# 允許IP地址段訪問罩旋,設(shè)置為:”192.168.0.%”啊央。
mysql> grant all on *.* to 'root'@'%';

# 刷新用戶權(quán)限。
mysql> flush privileges;

# 連接 mysql 數(shù)據(jù)庫瘸恼,默認(rèn)數(shù)據(jù)庫劣挫。
mysql>use mysql;

# 查詢已有的策略。
mysql> select user,host,authentication_string from user \G;

# 退出客戶端东帅。
mysql> exit;

3.MySQL8 的管理

1、啟動數(shù)據(jù)庫

[centos@host ~]$ sudo systemctl start mysqld.service

2球拦、停止數(shù)據(jù)庫

[centos@host ~]$ sudo systemctl stop mysqld.service

3靠闭、重啟數(shù)據(jù)庫

[centos@host ~]$ sudo systemctl restart mysqld.service

4、查看數(shù)據(jù)庫狀態(tài)坎炼、進(jìn)程愧膀、端口

[centos@host ~]$ sudo systemctl status mysqld.service
[centos@host ~]$ sudo ps -ef | grep mysqld
[centos@host ~]$ sudo netstat -ntap | grep mysqld

5、開啟數(shù)據(jù)庫開機(jī)自啟動

[centos@host ~]$ sudo systemctl enable mysqld.service

6谣光、禁用數(shù)據(jù)庫開機(jī)自啟動

[centos@host ~]$ sudo systemctl disable mysqld.service

7檩淋、本地客戶端登錄數(shù)據(jù)庫

[centos@host ~]$ mysql -u root -p
Enter password:
mysql>

8、遷移數(shù)據(jù)庫

1)停止數(shù)據(jù)庫萄金。

[centos@host ~]$ sudo systemctl stop mysqld.service

2)創(chuàng)建新的目錄蟀悦,遷移數(shù)據(jù)庫的相關(guān)文件,并為新的目錄設(shè)置安全標(biāo)簽氧敢。

[centos@host ~]$ sudo mkdir -p /data/new-mysql/data
[centos@host ~]$ sudo mkdir -p /data/new-mysql/log
[centos@host ~]$ sudo mkdir -p /data/new-mysql/backup
[centos@host ~]$ sudo chown -R mysql:mysql /data/new-mysql

[centos@host ~]$ sudo cp -a /data/mysql/data /data/new-mysql/data
[centos@host ~]$ sudo cp -a /data/mysql/log /data/new-mysql/log
[centos@host ~]$ sudo cp -a /data/mysql/backup /data/new-mysql/backup

[centos@host ~]$ sudo semanage fcontext -a -t mysqld_db_t "/data/new-mysql/data(/.*)?"
[centos@host ~]$ sudo semanage fcontext -a -t mysqld_log_t "/data/new-mysql/log(/.*)?"
[centos@host ~]$ sudo restorecon -Rv /data/new-mysql/data
[centos@host ~]$ sudo restorecon -Rv /data/new-mysql/log

3)使用文本編輯器打開配置文件日戈,修改或驗證文件中的以下參數(shù)并保存。

[centos@host ~]$ sudo gedit /etc/my.cnf
[mysqld]
# 數(shù)據(jù)存儲目錄孙乖,默認(rèn)是/var/lib/mysql浙炼。建議存儲到數(shù)據(jù)盤中。
datadir=/data/new-mysql/data

# 日志文件位置唯袄,默認(rèn)是/var/log/mysqld.log弯屈。建議存儲到數(shù)據(jù)盤中。
log-error=/data/new-mysql/log/mysqld.log

4)啟動數(shù)據(jù)庫恋拷。

[centos@host ~]$ sudo systemctl start mysqld.service

9资厉、管理用戶和客戶端的策略

1)創(chuàng)建新的用戶和客戶端策略:

[centos@host ~]$ mysql -u root -p
Enter password:
# 格式:create user '<賬號>'@'<客戶端IP策略>' identified with mysql_native_password by '<登錄密碼>';
# 說明:
# <客戶端IP策略>可以使用通配符”%”,也可以指定具體IP地址或地址段梅掠,如:
# 允許全部遠(yuǎn)程地址訪問酌住,設(shè)置為:”%”;
# 允許IP地址訪問店归,設(shè)置為:”192.168.0.1”;
# 允許IP地址段訪問,設(shè)置為:”192.168.0.%”酪我。
# with mysql_native_password 表示設(shè)置的口令可同時用于遠(yuǎn)程訪問(不指定時用于本地訪問)消痛。
mysql> create user 'root'@'%' identified with mysql_native_password by 'password';
mysql> flush privileges;
mysql> exit;

2)修改現(xiàn)有的用戶和客戶端管理策略:

[centos@host ~]$ mysql -u root -p
Enter password:
# 格式:alter user '<賬號>'@'<客戶端IP策略>' identified with mysql_native_password by '<登錄密碼>';
# 說明:
# <客戶端IP策略>可以使用通配符”%”,也可以指定具體IP地址或地址段都哭,如:
# 允許全部遠(yuǎn)程地址訪問秩伞,設(shè)置為:”%”;
# 允許IP地址訪問,設(shè)置為:”192.168.0.1”;
# 允許IP地址段訪問欺矫,設(shè)置為:”192.168.0.%”纱新。
# with mysql_native_password 表示設(shè)置的口令可同時用于遠(yuǎn)程訪問(不指定時用于本地訪問)。
mysql> alter user 'root'@'%' identified with mysql_native_password by 'password';
mysql> flush privileges;
mysql> exit;

3)刪除現(xiàn)有的用戶和客戶端策略:

[centos@host ~]$ mysql -u root -p
Enter password:
# 格式:drop user '<賬號>'@'<客戶端IP策略>';
# 說明:
# <客戶端IP策略>可以使用通配符”%”穆趴,也可以指定具體IP地址或地址段脸爱,如:
# 允許全部遠(yuǎn)程地址訪問,設(shè)置為:”%”;
# 允許IP地址訪問未妹,設(shè)置為:”192.168.0.1”;
# 允許IP地址段訪問簿废,設(shè)置為:”192.168.0.%”。
mysql> drop user 'root'@'%';
mysql> flush privileges;
mysql> exit;

4)為用戶和客戶端授予訪問權(quán)限:

[centos@host ~]$ mysql -u root -p
Enter password:
# 格式:grant all privileges on <庫名>.<表名> to '<用戶名>'@'<客戶端IP策略>';
# 說明:
# <庫名>和<表名>可以使用通配符”*”代替络它,表示全部數(shù)據(jù)庫或全部表族檬;
# <客戶端IP策略>可以使用通配符”%”,也可以指定具體IP地址或地址段化戳,如:
# 允許全部遠(yuǎn)程地址訪問单料,設(shè)置為:”%”;
# 允許IP地址訪問,設(shè)置為:”192.168.0.1”;
# 允許IP地址段訪問点楼,設(shè)置為:”192.168.0.%”扫尖。
mysql> grant all on *.* to 'root'@'%';
mysql> flush privileges;
mysql> exit;

5)查詢已有的客戶端策略:

[centos@host ~]$ mysql -u root -p
Enter password:
mysql> use mysql;
mysql> select user,host,authentication_string from user \G;
mysql> exit;

4.MySQL8 備份數(shù)據(jù)庫

1、備份庫

格式:mysqldump -h 主機(jī)名 -p 端口 -u 用戶名 -p 密碼 --database 數(shù)據(jù)庫名 > 文件名.sql

例如:

[centos@host ~]$ mysqldump -h 192.168.0.1 -p 3306 -u root -p password --database cmdb > /data/mysql/backup/cmdb.sql

2盟步、備份庫并壓縮

導(dǎo)出的數(shù)據(jù)有可能比較大藏斩,不好備份到遠(yuǎn)程,這時候就需要進(jìn)行壓縮却盘。

格式:mysqldump -h 主機(jī)名 -p 端口 -u 用戶名 -p 密碼 --database 數(shù)據(jù)庫名 | gzip > 文件名.sql.gz

例如:

[centos@host ~]$ mysqldump -h 192.168.0.1 -p 3306 -u root -p password --database cmdb | gzip > /data/mysql/backup/cmdb.sql.gz

3狰域、備份同個庫多個表

格式:mysqldump -h 主機(jī)名 -p 端口 -u 用戶名 -p 密碼 --database 數(shù)據(jù)庫名 表1 表2 .... > 文件名.sql

例如:

[centos@host ~]$ mysqldump -h 192.168.1.100 -p 3306 -u root -p password cmdb t1 t2 > /data/mysql/backup/cmdb_t1_t2.sql

4、同時備份多個庫

格式:mysqldump -h 主機(jī)名 -p 端口 -u 用戶名 -p 密碼 --databases 數(shù)據(jù)庫名1 數(shù)據(jù)庫名2 數(shù)據(jù)庫名3 > 文件名.sql

例如:

[centos@host ~]$ mysqldump -h 192.168.0.1 -u root -p password --databases cmdb bbs blog > /data/mysql/backup/mutil_db.sql

5黄橘、備份實例上所有的數(shù)據(jù)庫

格式:mysqldump -h 主機(jī)名 -p 端口 -u 用戶名 -p 密碼 --all-databases > 文件名.sql

例如:

[centos@host ~]$ mysqldump -h 192.168.0.1 -u root -p password --all-databases > /data/mysql/backup/all_db.sql

6兆览、備份數(shù)據(jù)庫(含已刪除數(shù)據(jù)庫或者表的sql備份)

格式:mysqldump -h 主機(jī)名 -p 端口 -u 用戶名 -p 密碼 --add-drop-table --add-drop-database 數(shù)據(jù)庫名 > 文件名.sql

例如:

[centos@host ~]$ mysqldump -h 192.168.0.1 -u root -p password --add-drop-table --add-drop-database cmdb > /data/mysql/backup/all_db.sql

7、備份數(shù)據(jù)庫結(jié)構(gòu)塞关,不備份數(shù)據(jù)

格式:mysqldump -h 主機(jī)名 -p 端口 -u 用戶名 -p 密碼 --no-data 數(shù)據(jù)庫名1 數(shù)據(jù)庫名2 數(shù)據(jù)庫名3 > 文件名.sql

例如:

[centos@host ~]$ mysqldump -h 192.168.0.1 -u root -p password --no-data –databases db1 db2 cmdb > /data/mysql/backup/structure.sql

8抬探、恢復(fù)數(shù)據(jù)庫

格式:mysql -h 主機(jī)名 -p 端口 -u 用戶名 -p 密碼 < 文件名.sql

例如:

[centos@host ~]$ mysql -h 192.168.0.1 -u root -p password < /data/mysql/backup/structure.sql

4.MySQL8 導(dǎo)入數(shù)據(jù)

1、語法:

格式:mysqlimport -h 主機(jī)名 -p 端口 -u 用戶名 -p 密碼 [--local] dbname file [option]

2、說明:

  • [--local]:表示從客戶端任意路徑讀取文件導(dǎo)入表中小压,未設(shè)置該選項時线梗,默認(rèn)只從 datadir 下同名數(shù)據(jù)庫目錄下讀取文件導(dǎo)入;
  • dbname:表示數(shù)據(jù)庫名稱怠益;
  • file:表示數(shù)據(jù)文本文件的路徑和名稱仪搔;
  • [option]:表示附加選項,如下:
    --fields-terminated-by=字符串:設(shè)置字符串為字段的分隔符蜻牢,默認(rèn)值是“\t”烤咧;
    --fields-enclosed-by=字符:設(shè)置字符來括上字段的值;
    --fields-optionally-enclosed-by=字符:設(shè)置字符括上char抢呆、varchar煮嫌、text等字符型字段;
    --fields-escaped-by=字符:設(shè)置轉(zhuǎn)義字符抱虐;
    --lines-terminated-by=字符串:設(shè)置每行的結(jié)束符昌阿;
    --ignore-lines=n:表示可以忽略前幾行。

3恳邀、示例(導(dǎo)入文本到數(shù)據(jù)庫):

[centos@host ~]$ mysqlimport -h 192.168.0.1 -u root -p password mysqldb data.txt 

注意:本例中數(shù)據(jù)庫名稱是"mysqldb"宝泵,導(dǎo)入數(shù)據(jù)的表名是"data",導(dǎo)入的數(shù)據(jù)文件名是"data.txt"轩娶,導(dǎo)入數(shù)據(jù)表名與數(shù)據(jù)文件的主文件名必須是一致的。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末框往,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌虽风,老刑警劉巖温鸽,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異秉版,居然都是意外死亡贤重,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進(jìn)店門清焕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來并蝗,“玉大人,你說我怎么就攤上這事秸妥」鐾#” “怎么了?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵粥惧,是天一觀的道長键畴。 經(jīng)常有香客問我,道長突雪,這世上最難降的妖魔是什么起惕? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任涡贱,我火速辦了婚禮,結(jié)果婚禮上惹想,老公的妹妹穿的比我還像新娘问词。我一直安慰自己,他們只是感情好勺馆,可當(dāng)我...
    茶點故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布戏售。 她就那樣靜靜地躺著,像睡著了一般草穆。 火紅的嫁衣襯著肌膚如雪灌灾。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天悲柱,我揣著相機(jī)與錄音锋喜,去河邊找鬼。 笑死豌鸡,一個胖子當(dāng)著我的面吹牛嘿般,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播涯冠,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼炉奴,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了蛇更?” 一聲冷哼從身側(cè)響起瞻赶,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎派任,沒想到半個月后砸逊,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡掌逛,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年师逸,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片豆混。...
    茶點故事閱讀 39,785評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡篓像,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出崖叫,到底是詐尸還是另有隱情遗淳,我是刑警寧澤,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布心傀,位于F島的核電站屈暗,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜养叛,卻給世界環(huán)境...
    茶點故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一种呐、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧弃甥,春花似錦爽室、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至瓶珊,卻和暖如春啸箫,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背伞芹。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工忘苛, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人唱较。 一個月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓扎唾,卻偏偏與公主長得像,于是被迫代替她去往敵國和親南缓。 傳聞我的和親對象是個殘疾皇子胸遇,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,713評論 2 354

推薦閱讀更多精彩內(nèi)容