首页 > 代码库 > Linux运维常用的 MySQL基础命令

Linux运维常用的 MySQL基础命令

MySQL基础命令

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

创建MySQL库,授权。

>create database mysqldb character set utf8;

>grant all privileges on mysqldb.* to ‘mysqluser‘@‘localhost‘ identified by ‘mysqlpasswd‘;

>flush privileges;


创建了mysqldb数据库,创建mysqluser用户,并授权mysqldb的所有权限。___________________________________________________________________________


设置远程访问MySQL

>grant all privileges on mysqldb.* to ‘mysqluser‘@‘%‘ identified by ‘mysqlpasswd‘;

# mysqluser是用户名,%代表任意主机,‘mysqlpasswd‘指定的登录密码(这个和本地的密码可以设置不同的,互不影响

>flush privileges; # 重载系统权限


设置只允许192.168.1.2的主机用root用户访问MySQL

>grant all privileges on *.* to ‘root‘@‘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‘@‘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=http://www.mamicode.com/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=http://www.mamicode.com/2 | gzip > 2017-07-17_bak.sql


导入

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


_________________________________________________________________________


查看所有MySQL用户

>SELECT DISTINCT CONCAT(‘User: ‘‘‘,user,‘‘‘@‘‘‘,host,‘‘‘;‘) AS query FROM mysql.user;


查看数据库中具体某个用户的权限

>show grants for ‘root‘@‘%‘;

>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基础命令