MySQL命令

建库

CREATE DATABASE `databaseName` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

创建用户

CREATE USER 'userName'@'localhost' IDENTIFIED BY 'eKw5Ap9EBwjIRc_AO2!Y84';

-- userName: 你将创建用户的名字
-- localhost : 本地用户,如果想让该用户可以**从任意远程主机登陆**,可以使用`%`
-- password : 密码

授权

GRANT all ON databaseName.* TO 'userName'@'%';

GRANT ALL PRIVILEGES ON databaseName.* TO 'userName'@'ip' IDENTIFIED BY 'password' WITH GRANT OPTION;

-- 授权后必须刷新权限才能生效
flush privileges;

查看权限

-- '\G' 表示以竖向的形式展示, 方便查看
select * from mysql.user where user='userName'\G;

删除用户

DROP USER 'username'@'localhost';

撤销权限

REVOKE all ON databaseName.tableName FROM 'userName'@'localhost';

还原数据

source workDispatcher.sql

增加字段

ALTER TABLE tableName ADD COLUMN columnName VARCHAR(20) DEFAULT NULL COMMENT '';

修改密码

set password for '用户名'@'%' = password('新密码');
//或者
ALTER USER 'root'@'%' IDENTIFIED BY '123456';

flush privileges;

备份数据库

# 1、在console1执行mysql命令,锁住数据库实例为只读状态,阻塞所有的DML写语句,DDL语句,更新操作的事务提交语句,从而获得一致性视图
flush tables with read lock;

# 2、在console2执行shell命令,做全库备份
mysqldump -u root -p DB_NAME > /root/DB_NAME.sql

# 3、回到console1执行mysql命令,释放全局锁
unlock tables;

binlog日志相关

# 查看当前的日志名称
show master status;

# 查看binlog日志
mysqlbinlog -v BIN_LOG_FILE_NAME
--start-positon=11001
--stop-position=11004
--start-datetime='2022-10-10 23:27:27'
--start-datetime='2022-10-10 23:29:00'

# 使用binlog日志还原数据
# 还原之前最好先使用 flush logs 开启新的binlog日志,以便确定业务数据的最后边界
mysqlbinlog -v --start-positon=11001 --stop-position=11004 BIN_LOG_FILE_NAME | mysql -u root -p

重新统计索引扫描行数

analyze table tableName

索引提示

select * from table_name <use|ignore|force> index(index_name) where ...
  • use:建议Mysql使用的索引,类似建议java调用gc,但不一定会用
  • ignore:忽略指定索引
  • force:强制使用索引

配置主从

1、master修改配置文件/etc/my.cnf,在[mysqld]下增加

log-bin=mysql-bin
server-id=1
binlog-format=row
binlog-do-db=lyzz_image

2、master创建用户,专门用于复制操作,用于从节点连接主节点时使用,slave_ip为从节点IP

-- mysql 5.7 默认身份验证插件default_authentication_plugin是:mysql_native_password
CREATE USER 'master'@'slave_ip' IDENTIFIED WITH mysql_native_password BY '123456';

-- mysql 8.0 默认身份验证插件default_authentication_plugin是:caching_sha2_password
CREATE USER 'master'@'slave_ip' IDENTIFIED WITH caching_sha2_password BY '123456';

-- 为master用户授权
GRANT REPLICATION SLAVE ON *.* TO 'master'@'slave_ip';

-- 刷新权限
flush privileges;

-- 查看主节点binlog日志信息,记录FILE及POSITION
show master status;

3、slave修改配置文件/etc/my.cnf,在[mysqld]下增加

log-bin=mysql-bin
server-id=2
binlog-format=row
replicate-do-db=lyzz_image

4、在Slave节点上设置主节点参数,然后开启主从同步

-- 设置主节点参数
CHANGE MASTER TO MASTER_HOST = '${MASTER_IP}',
    MASTER_USER ='master',
    MASTER_PASSWORD ='${MASTER_PASSWORD}',
    MASTER_LOG_FILE ='${FILE}',
    MASTER_LOG_POS = '${POSITION}',
    get_master_public_key =1;

-- 开启同步
start slave;

-- 设置失败时清除同步配置
reset slave all;

5、查看主从同步状态show slave status;,确认数据一致,且Slave_IO_RunningSlave_SQL_Running为Yes,Last_IO_Error为空

Slave_IO_State: Waiting for master to send event
Master_Host: 10.0.0.227
Master_User: master
Master_Port: 3306
Master_Log_File: mysql-bin.000001
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB: lyzz_arch
Last_IO_Error: 
Get_master_public_key: 1

6、其他配置:

不同步哪个数据库(在master[mysqld]):binlog-ignore-db=mysql
只同步哪个数据库(在master[mysqld]):binlog-do-db=lyzz_arch,其他库不同步
接收哪个库的binlog日志(在slave[mysqld]):replicate-do-db=lyzz_arch
posted @   谭五月  阅读(22)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示