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操作速查/
赞赏
微信赞赏支付宝赞赏
发表评论