# 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;


设置允许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用户

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


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

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

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

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


设置防火墙,让 3306 端口对外可访问

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

iptables -nL 

service iptables save 



_________________________________________________________________


### MySQL导出导入

导出数据库用mysqldump命令(注意mysql的安装路径,即此命令的路径):

-S 参数 指定/tmp/mysql.sock


1、只导出表结构( -d 参数)

mysqldump -u用户名 -p密码 -d 数据库名 > 数据库名.sql


导出

#mysqldump -uroot -p'password' -d mysqldb > abc.sql

导入

mysql  -uroot -p"password"mysqldb < abc.sql



2、数据库导入导出:

mysqldump -u用户名 -p密码  数据库名 > 备份文件名.sql


导出

#mysqldump -uroot -p'password' mysqldb > bak.sql

导入

#mysql -uroot -p'password' mysqldb < bak.sql


导出全部数据库(包括用户名密码等.) mysqldump -uroot -p --all-databases > sqlfile.sql


3.MySQL压缩备份与恢复

mysqldump -u用户名 -p密码 数据库名   | gzip >  备份后的名称


备份

mysqldump -uroot -p'password' -S /tmp/mysql.sock  mysqldb | gzip > backupfile.sql.gz 

恢复

gunzip < backupfile.sql.gz | mysql -u'root' -p'password' -S /tmp/mysql.sock mysqldb



4.对单个表的备份与还原,

  对mysqldb库的 app_info表进行备份恢复,


备份

mysqldump -u"root" -p"password" -S /tmp/mysql.sock mysqldb app_info  > app_info.sql

恢复

mysql  -u"root" -p"password" -S /tmp/mysql.sock mysqldb < app_info.sql

_________________________________________________________________________



### 重置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;    


MySQL5.6

update user set password = Password("new_pass") where User = 'root';

MySQL5.7

update user set authentication_string = Password("new_pass") where User = 'root';



4.重启MySQL

service mysql restart 

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


整理了几条MySQL的命令,这些都是我在工作中常用的。也非常实用。



                                                     背黑锅我们最专业

                                                     ------运维