1. 程式人生 > >Linux運維常用的 MySQL基礎命令

Linux運維常用的 MySQL基礎命令

linux運維常用的 mysql基礎命令

MySQL基礎命令

-------------

創建MySQL庫,授權。

>create database mysqldb character set utf8;

>grant all privileges on mysqldb.* to ‘mysqluser[email protected] identified by ‘mysqlpasswd‘;

>flush privileges;


創建了mysqldb數據庫,創建mysqluser用戶,並授權mysqldb的所有權限。___________________________________________________________________________


設置遠程訪問MySQL

>grant all privileges on mysqldb.* to ‘mysqluser[email protected]%‘ identified by ‘mysqlpasswd‘;

# mysqluser是用戶名,%代表任意主機,‘mysqlpasswd‘指定的登錄密碼(這個和本地的密碼可以設置不同的,互不影響

>flush privileges; # 重載系統權限


設置只允許192.168.1.2的主機用root用戶訪問MySQL

>grant all privileges on *.* to ‘root[email protected]

/* */192.168.1.2‘ identified by ‘123456‘ with grant option;

>flush privileges;


設置防火墻,讓 3306 端口對外可訪問

iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT

iptables -nL

service iptables save


設置允許192.168.1.1/24 網段的所有主機用root用戶訪問MySQL

>grant all privileges on *.* to ‘root[email protected]

/* */192.168.1.%‘ identified by ‘123456‘ with grant option;

flush privileges;

_________________________________________________________________


MySQL導出導入

導出數據庫用mysqldump命令(註意mysql的安裝路徑,即此命令的路徑):


1、只導出表結構( -d 參數)

mysqldump -u用戶名 -p密碼 -d 數據庫名 > 數據庫名.sql

#/usr/local/mysql/bin/mysqldump -uroot -p‘password‘ -d mysqldb > abc.sql


導出表結構多幾個參數,但沒什麽壞處。

mysqldump -uroot -p --default-character-set=utf8 -R -E --triggers --single-transaction --master-data=2 --hex-blob -B -d mysqldb > mysqldb_str.sql



2、數據庫導入導出:

mysqldump -u用戶名 -p密碼 數據庫名 > 備份文件名.sql


導出

#/usr/local/mysql/bin/mysqldump -uroot -p‘password‘ mysqldb > bak.sql


#/usr/local/mysql/bin/mysqldump -uroot -p‘password‘ --routines --events --single-transaction --all-databases --master-data=2 | gzip > 2017-07-17_bak.sql


導入

#/usr/local/mysql/bin/mysqldump -uroot -p‘password‘ mysqldb < bak.sql


_________________________________________________________________________


查看所有MySQL用戶

>SELECT DISTINCT CONCAT(‘User: ‘‘‘,user,[email protected],host,‘‘‘;‘) AS query FROM mysql.user;


查看數據庫中具體某個用戶的權限

>show grants for [email protected]%‘;

>select * from mysql.user where user=‘root‘ \G

----------------------------------------------------

重置MySQL root密碼

mysqladmin -uroot password ‘mysql_pass‘; (設置mysql的root密碼)

  1. 停止正在運行的MySQL進程

    netstat -anput | grep mysql

    ps -ef | grep mysql

    先查看mysql的pid,然後殺掉。或者service mysql stop停止。

kill pid


2.以安全模式啟動MySQL

mysqld_safe --skip-grant-tables &

註意mysqld_safe 命令的路徑


3.更改MySQL數據庫root密碼

>use mysql

>update user set password=password("new_pass") where user="root";

>flush privileges;


4.重啟MySQL

service mysql restart

———————————————————————————————————

雖然公司有專業的DBA,在運維工作中,難免對數據庫的一些接觸,也是必須的。

所以整理了幾條MySQL的命令,這些都是我在工作中常用的。也非常實用。

因為我是運維新手,所以這幾條命令也夠我應付工作中遇到的大部分MySQL問題了。

運維=背鍋俠,對數據備份這塊一定要做好,我深有感觸。

有一次開發誤刪數據庫,怪我備份沒做好。其實我也挺冤的,其實我備份做了,還通過ftp同步到其他服務器上保存,但是開發在前幾天就把ftp用戶名密碼改了,還是我的問題。權限沒控制好。

唉!!! 誰讓我年輕呢,多背背鍋,也挺好。

背黑鍋我們最專業

------運維


Linux運維常用的 MySQL基礎命令