1 设置更改root密码
2 连接mysql
3 mysql常用命令
4 mysql用户管理
5 常用sql语句
6 mysql数据库备份恢复
使用xtrabackup备份innodb引擎的数据库 innobackupex 备份 Xtrabackup 增量备份 http://zhangguangzhi.top/2017/08/23/innobackex%E5%B7%A5%E5%85%B7%E5%A4%87%E4%BB%BDmysql%E6%95%B0%E6%8D%AE/#%E4%B8%89%E3%80%81%E5%BC%80%E5%A7%8B%E6%81%A2%E5%A4%8Dmysql
扩展
mysql5.7 root密码更改 http://www.apelearn.com/bbs/thread-7289-1-1.html
myisam 和innodb引擎对比 http://www.pureweber.com/article/myisam-vs-innodb/
mysql 配置详解: http://blog.linuxeye.com/379.html
mysql调优: http://www.aminglinux.com/bbs/thread-5758-1-1.html
同学分享的亲身mysql调优经历: http://www.apelearn.com/bbs/thread-11281-1-1.html
SQL语句教程 http://www.runoob.com/sql/sql-tutorial.html
什么是事务?事务的特性有哪些? http://blog.youkuaiyun.com/yenange/article/details/7556094
根据binlog恢复指定时间段的数据 https://blog.youkuaiyun.com/lilongsy/article/details/74726002
mysql字符集调整 http://xjsunjie.blog.51cto.com/999372/1355013
1、设置更改mysql root用户密码
更改环境变量PATH,增加mysql绝对路径,暂时生效
export PATH=/usr/local/mysql/bin/
进入mysql
mysql -uroot
永久生效,编辑/etc/profile,在最后加入export PATH=/usr/local/mysql/bin/
让修改生效
source /etc/profile
-p表示指定密码
mysql -uroot -p
设置mysql密码
mysqladmin -uroot password 'zhouliang'
更改mysql密码
mysqladmin -uroot -p'zhouliang' password 'zhouliang2'
进入mysql
mysql -uroot -p'zhouliang2'
忘记mysql密码重置方法
vi /etc/my.cnf增加skip-grant(表示忽略授权)
重启mysql服务
/etc/init.d/mysqld restart
设置密码
update user set password=password('zhouliang')where user='root';
2、连接mysql
远程连接mysql,-h表示连接ip,-P表示连接端口
mysql -uroot -pzhouliang -h127.0.0.1 -P3306
使用sock连接,只适合在本机
mysql -uroot -pzhouliang -S/tmp/mysql.sock
连接mysql之后操作数据库,查看所有数据库,-e表示连接mysql后,执行一些命令
mysql -uroot -pzhouliang -e "shou databases"
3、mysql常用命令
查看有哪些数据库
show databases;
切换到那一个库下面
use mysql;
查看库里面的表
show tables;
查看表里面的字段desc,columns_priv表示表名
desc columns_priv;
查看创建表的过程,user表示表名,\G作用是让格式更清晰
show create table user\G;
查看当前用户
select user();
mysql记录命令历史文件.mysql_history
查看当前使用的数据库
select database();
创建一个db1库
create database db1;
创建一个名字为t1的表,id和name表示字段,int表示数字,char表示字符串
create table t1(`id` int(4), `name` char(40));
查看创建表的过程,ENGINE表示引擎,DEFAULT CHARSET表示字符集
show create table t1\G;
mysql命令前面加一个#号表示命令不会生效
删掉t1表
drop table t1;
创建一个表指定UTF8格式
create table t1(`id` int(4), `name` char(40)) ENGINE=InnoDB DEFAULT CHARSET=UTF8;
查看当前数据库版本
select version();
查看数据库状态
show status;
4、mysql用户管理
创建一个user1用户,密码为123456a,对所有库所有表拥有所有权限,127.0.0.1可以写成%,表示通配
grant all on *.* to 'user1'@'127.0.0.1' identified by '123456a';
用user1用户连接mysql
mysql -uuser1 -p123456a -h127.0.0.1
用localhost登录
grant all on *.* to 'user1'@'127.0.0.1' identified by '123456a';
不用指定ip
mysql -uuser1 -p123456a
查看授权
show grants;
查看user1用户授权
show grants for user1@127.0.0.1;
5、常用sql语句
查看mysql数据库的user表有多少行
select count(*) from mysql.user;
查看mysql数据库所有内容,加上\G让内容更清晰
select * from mysql.db;
两种数据引擎,mysql数据库里所有的表默认使用的引擎是myisam(会自动统计有多少行),innodb不会统计行数(每次查询每次统计)
myisam innodb
查看db数据库的所有内容
select db from mysql.db;
查看db和user数据库的所有内容
select db,user from mysql.db;
select * from mysql.db where host like '192.168.%'\G;
在db1数据,t1表插入数据,id为1,name为abc,对于字符串要加单引号,数字可以不加
insert into db1.t1 values (1,'abc');
更改id为1,name为aaa
update db1.t1 set name='aaa' where id=1
删除t1表里面id等于1的字段
delete from db1.t1 where id=1;
清空一个表,仅清空表内容,表结构还留着
truncate db1.t1;
删除t1表
drop teble t1;
删除db1数据库
drop database db1;
6、mysql数据库备份恢复
备份mysql库/tmp/mysqlbak.sql文件
mysqldump -uroot -pzhouliang mysql > /tmp/mysqlbak.sql
创建mysql2库
mysql -uroot -pzhouliang -e "create database mysql2"
恢复数据到mysql2库
mysql -uroot -pzhouliang mysql2 < /tmp/mysqlbak.sql
进入mysql2数据库
mysql -uroot -pzhouliang mysql2
查看当前数据库
select database();
备份mysql库user表
mysqldump -uroot -pzhouliang mysql user > /tmp/user.sql
恢复mysql2库user表
mysql -uroot -pzhouliang mysql2 < /tmp/user.sql
备份所有库
mysqldump -uroot -pzhouliang -A > /tmp/mysql_all.sql
只备份表结构
mysqldump -uroot -pzhouliang -d mysql2 > /tmp/mysql2.sql
-A表示备份所有数据库;-d 数据库名只备份数据表的结构,不备份数据