首页 > 代码库 > 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密码)
停止正在运行的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基础命令