mysql操作速查

1、安装mysql,参考地址 https://blog.csdn.net/qq_36582604/article/details/80526287

启动:systemctl start  mysqld.service
停止:systemctl stop mysqld.service
查看状态:systemctl status mysqld.service
重启服务:service mysqld restart
(/bin/systemctl restart  mysqld.service)
查找安装后默认的root密码
grep "password" /var/log/mysqld.log

2、打开终端操作登录mysql

mysql -uroot -p
输入默认密码登录后
修改默认安装密码,必须修改默认密码之后才能操作数据库。如果使用宝塔安装的mysql可以直接去数据库菜单--查看root密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '这里填写新密码';

登录mysql后查看mysql版本、字符集等状态信息
utf8字符集设置一般在etc目录下的my.cnf文件修改,然后重启
status

3、新增mysql数据库用户,及远程登录数据库权限

格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by “密码”

新增用户dbuser 限制从127.0.0.1 登录,在数据库testdb上拥有所有权限
GRANT ALL PRIVILEGES ON testdb.* TO 'dbuser'@'127.0.0.1' IDENTIFIED BY '给dbuser设置的密码' WITH GRANT OPTION;

设置用户dbuser只能以127.0.0.1登录,在数据库testdb上只有select读权限
GRANT select ON testdb.* TO 'dbuser'@'127.0.0.1' IDENTIFIED BY '给dbuser设置的密码' WITH GRANT OPTION;

给用户dbuser赋予从任意地址远程登陆数据库的select, insert, update, delete权限
GRANT select, insert, update, delete ON testdb.* TO 'dbuser'@'%' IDENTIFIED BY "给dbuser设置的密码" with grant option;

跟权限有关的操作最后一定要刷新权限
FLUSH PRIVILEGES;

退出mysql
exit

允许root 或其他用户的任意地址远程登陆权限(记得开放服务器自己的防火墙端口、开启ECS的数据库端口通行、开启安全组的端口(如果有)、RDS可能还要开放允许内网连接的ip白名单)

允许root远程
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root的密码' WITH GRANT OPTION;
刷新权限
FLUSH PRIVILEGES;
centos防火墙开放本机端口3306,不是所有linux系统用的都是firewall,也可能用的iptables?操作命令会不同
firewall-cmd --zone=public --add-port=3306/tcp --permanent

重新载入端口
firewall-cmd --reload

3.1、查看某个用户的权限

mysql数据库用户权限表分析,有兴趣可以参考: https://blog.csdn.net/kkkun_joe/article/details/81023427

查看用户root 在% 任意主机登录的权限
show grants for 'root'@'%'; 

查看用户dbuser在localhost主机登陆的权限
show grants for 'dbuser'@'localhost';

查看当前登录的用户
SELECT CURRENT_USER(); 

4、登录远程服务器的mysql(在本地登录的基础上增加了-h参数),本地登录一般不需要加端口号(即使修改了端口号)

ip登录:114.114.114.114
mysql -h114.114.114.114 -P3306 -uroot -p

域名登录:rm-bp456209sssd1y1.mysql.rds.aliyuncs.com
mysql -hrm-bp456209sssd1y1.mysql.rds.aliyuncs.com -P3306 -uroot -p

5、备份远程服务器数据库到本机(需对方所给数据库登录帐户有远程登陆权限)

mysqldump -h 远程数据库ip -P 数据库端口 -u 数据库账号 -p 数据库名 > 导出的文件名.sql
使用root用户登录114.114.114.114的3306端口,将testdb数据备份到sqltestback.sql文件
mysqldump -h 114.114.114.114 -P 3306 -u root -p testdb > sqltestback.sql

如果使用上面方法出现报错提示,可能是备份的数据库开启了GTID主从同步。需要增加–set-gtid-purged=off 参数

mysqldump -h 114.114.114.114 -P 3306 -u root --set-gtid-purged=off -p testdb > sqltestback.sql

6、从sql文件还原数据库

exit退出远程备份的数据库,登录本地mysql
切换到要恢复的数据库或创建要恢复到的数据库后再切换
create database testdb;
use testdb;    

从sql恢复
source sqltestback.sql;

7、主从同步数据库查询命令

查看主数据库状态:show master status;
查看主数据库server_id:show variables like '%server_id%';

启动从库slave:start slave;
查看从库slave状态:show slave status\G
如果Slave_IO_Running 和 Slave_SQL_Running 的状态是否都为 Yes的话则配置成功,否则可能是主从数据库数据不一致,需要将从库数据恢复成与主库一致才行

8、登录从库数据库后设置需要连接的主库的信息

change master to master_host='114.114.114.114', //主库Master服务器ip或域名
master_port=3306,
master_user='dbuser', //远程主库上的dbuser用户,需要赋予远程登陆权限,数据库只读权限即可
master_password='dbuser的密码', 
master_log_file='master-bin.000015',//在远程数据库上使用master status;命令查看到的File字段对应的 Master服务器产生的日志文件名(一般是不变的)
master_log_pos=0; //master status;命令显示的Position字段对应的 binlog起始位置(会随着主库的操作记录而变化)

mysql语句执行完如果有错误信息,可以如此查询: show warnings;

基于互联网精神,在注明出处的前提下本站文章可自由转载!

本文链接:https://ranjuan.cn/mysql操作速查/

赞赏

微信赞赏支付宝赞赏

ajax-push-message-with-php
阿里云centos云服务器lamp入门
redis-expire-time