MySQL

MySQL常用命令

 1 ./mysql/bin/mysqld_safe --user=mysql &   # 启动mysql服务
 2 ./mysql/bin/mysqladmin -uroot -p -S ./mysql/data/mysql.sock shutdown    # 停止mysql服务
 3 mysqlcheck -uroot -p -S mysql.sock --optimize --databases account       # 检查、修复、优化MyISAM表
 4 mysqlbinlog slave-relay-bin.000001              # 查看二进制日志(报错加绝对路径)
 5 mysqladmin -h myhost -u root -p create dbname   # 创建数据库
 6  
 7 flush privileges;             # 刷新
 8 show databases;               # 显示所有数据库
 9 use dbname;                      # 打开数据库
10 show tables;                  # 显示选中数据库中所有的表
11 desc tables;                  # 查看表结构
12 drop database name;           # 删除数据库
13 drop table name;              # 删除表
14 create database name;         # 创建数据库
15 select 列名称 from 表名称;    # 查询
16 show grants for repl;         # 查看用户权限
17 show processlist;             # 查看mysql进程
18 select user();                # 查看所有用户
19 show slave status\G;          # 查看主从状态
20 show variables;               # 查看所有参数变量
21 show table status             # 查看表的引擎状态
22 drop table if exists user                       # 表存在就删除
23 create table if not exists user                 # 表不存在就创建
24 select host,user,password from user;            # 查询用户权限 先use mysql
25 create table ka(ka_id varchar(6),qianshu int);  # 创建表
26 SHOW VARIABLES LIKE 'character_set_%';          # 查看系统的字符集和排序方式的设定
27 show variables like '%timeout%';                # 查看超时(wait_timeout)
28 delete from user where user='';                 # 删除空用户
29 delete from user where user='sss' and host='localhost' ;    # 删除用户
30 ALTER TABLE mytable ENGINE = MyISAM ;                       # 改变现有的表使用的存储引擎
31 SHOW TABLE STATUS from  库名  where Name='表名';            # 查询表引擎
32 CREATE TABLE innodb (id int, title char(20)) ENGINE = INNODB                     # 创建表指定存储引擎的类型(MyISAM或INNODB)
33 grant replication slave on *.* to '用户'@'%' identified by '密码';               # 创建主从复制用户
34 ALTER TABLE player ADD INDEX weekcredit_faction_index (weekcredit, faction);     # 添加索引
35 alter table name add column accountid(列名)  int(11) NOT NULL(字段不为空);       # 插入字段
36 update host set monitor_state='Y',hostname='xuesong' where ip='192.168.1.1';     # 更新数据

 

自增表

1 create table oldBoy  (id INTEGER  PRIMARY KEY AUTO_INCREMENT, name CHAR(30) NOT NULL, age integer , sex CHAR(15) );  # 创建自增表
2 insert into oldBoy(name,age,sex) values(%s,%s,%s)  # 自增插入数据

 

登录mysql的命令

1 # 格式: mysql -h 主机地址 -u 用户名 -p 用户密码
2 mysql -h110.110.110.110 -P3306 -uroot -p
3 mysql -uroot -p -S /data1/mysql5/data/mysql.sock -A  --default-character-set=GBK

 

shell执行mysql命令

1 mysql -u$username -p$passwd -h$dbhost -P$dbport -A -e "      
2 use $dbname;
3 delete from data where date=('$date1');
4 "    # 执行多条mysql命令
5 mysql -uroot -p -S mysql.sock -e "use db;alter table gift add column accountid  int(11) NOT NULL;flush privileges;"    # 不登陆mysql插入字段

 

备份数据库

1 mysqldump -h host -u root -p --default-character-set=utf8 dbname >dbname_backup.sql               # 不包括库名,还原需先创建库,在use 
2 mysqldump -h host -u root -p --database --default-character-set=utf8 dbname >dbname_backup.sql    # 包括库名,还原不需要创建库
3 /bin/mysqlhotcopy -u root -p    # mysqlhotcopy只能备份MyISAM引擎
4 mysqldump -u root -p -S mysql.sock --default-character-set=utf8 dbname table1 table2  > /data/db.sql    # 备份表
5 mysqldump -uroot -p123  -d database > database.sql    # 备份数据库结构
6  
7 innobackupex --user=root --password="" --defaults-file=/data/mysql5/data/my_3306.cnf --socket=/data/mysql5/data/mysql.sock --slave-info --stream=tar --tmpdir=/data/dbbackup/temp /data/dbbackup/ 2>/data/dbbackup/dbbackup.log | gzip 1>/data/dbbackup/db50.tar.gz   # xtrabackup备份需单独安装软件 优点: 速度快,压力小,可直接恢复主从复制

 

 

还原数据库

1 mysql -h host -u root -p dbname < dbname_backup.sql   
2 source 路径.sql   # 登陆mysql后还原sql文件

 

赋权限

1 # 指定IP: $IP  本机: localhost   所有IP地址: %   # 通常指定多条
2 grant all on zabbix.* to user@"$IP";             # 对现有账号赋予权限
3 grant select on database.* to user@"%" Identified by "passwd";     # 赋予查询权限(没有用户,直接创建)
4 grant all privileges on database.* to user@"$IP" identified by 'passwd';         # 赋予指定IP指定用户所有权限(不允许对当前库给其他用户赋权限)
5 grant all privileges on database.* to user@"localhost" identified by 'passwd' with grant option;   # 赋予本机指定用户所有权限(允许对当前库给其他用户赋权限)
6 grant select, insert, update, delete on database.* to user@'ip'identified by "passwd";   # 开放管理操作指令
7 revoke all on *.* from user@localhost;     # 回收权限

 

更改密码

1 update user set password=password('passwd') where user='root'
2 mysqladmin -u root password 'xuesong'

 

mysql忘记密码后重置

1 cd /data/mysql5
2 /data/mysql5/bin/mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
3 update user set password=password('123123') where user='root';

 

mysql主从复制失败恢复

1 slave stop;
2 reset slave;
3 change master to master_host='10.10.10.110',master_port=3306,master_user='repl',master_password='repl',master_log_file='master-bin.000010',master_log_pos=107,master_connect_retry=60;
4 slave start;

 

检测mysql主从复制延迟

1 1、在从库定时执行更新主库中的一个timeout数值
2 2、同时取出从库中的timeout值对比判断从库与主库的延迟

 

posted @ 2019-09-17 11:12  凌空a  阅读(192)  评论(0编辑  收藏  举报