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值对比判断从库与主库的延迟