常用MySQL操作

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用户密码

92339dfb2b6656bd4ecd6027c153baf2d58.jpg

更改环境变量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

dd882c1baef26b52bc07ef521a14eeefb8c.jpg

远程连接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"

bb059f8739ebbd9df4e1e43753044929235.jpg

3、mysql常用命令

9308fcacd11093db0338723b8d8fc3607e1.jpg

查看有哪些数据库

show databases;

ab2ac5fe8d67fae2b1e01f96fb4f49a68fc.jpg

切换到那一个库下面

use mysql;

29cd80ab5d7c1fe2d4bcb0a2912c17bd965.jpg

查看库里面的表

show tables;

b13a1d53ae0ff34c2501f9f0ceda2bfbd0e.jpg

查看表里面的字段desc,columns_priv表示表名

desc columns_priv;

52c20bcc1c3ea4a3d17076b68d8060c4a4a.jpg

查看创建表的过程,user表示表名,\G作用是让格式更清晰

show create table user\G;

1b2f7f657a7651d27f5f34e3bed92cdf16b.jpg

查看当前用户

select user();

6d29319230e8a6afb26c1aadeb98236973d.jpg

mysql记录命令历史文件.mysql_history

7bf5be5f9bbc8821dc94d989f8c40edc91b.jpg

查看当前使用的数据库

select database();

9e34fed2270f43de6dda6ccda98549f7d6c.jpg

8298fefabca4e4cbbdcef2b58e2a2465c21.jpg

ff3542b927c8313487bc43a12e47ea59add.jpg

创建一个db1库

create database db1;

9b3b10c4c982ecdd8cf5606980113ce2e27.jpg

创建一个名字为t1的表,id和name表示字段,int表示数字,char表示字符串

create table t1(`id` int(4), `name` char(40));

6510790ee516f35cefefa3253d2ee50f7a8.jpg

查看创建表的过程,ENGINE表示引擎,DEFAULT CHARSET表示字符集

show create table t1\G;

6002bb50a62a9fa35aaf64a17fba4d9ce3e.jpg

mysql命令前面加一个#号表示命令不会生效

删掉t1表

drop table t1;

ed084c416c671303f32913a263dffd8ca8d.jpg

创建一个表指定UTF8格式

create table t1(`id` int(4), `name` char(40)) ENGINE=InnoDB DEFAULT CHARSET=UTF8;

c9de580c9a8afebaf9c1d7f733ccae8162f.jpg

查看当前数据库版本

select version();

a26ec7ff1d511cbda69ab388ca41ae27275.jpg

查看数据库状态

show status;

707951b3f3d00ca3608d75d46982d5222e4.jpg

4、mysql用户管理

9c963b8bedcb6e3ca491b1ddf675726ccd9.jpg

创建一个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

d2f444a1c2916756168f883aa5bf709a739.jpg

查看授权

show grants;

61b9bcce9aa804000cd1d90494dc3895a62.jpg

查看user1用户授权

show grants for user1@127.0.0.1;

8b379de4858a660813f0b79e779f3ebb186.jpg

5、常用sql语句

590e67d4fbae2f3f72c099134881c51c708.jpg

查看mysql数据库的user表有多少行

select count(*) from mysql.user;

7c3f1a47582bd1cb34c1c4a30ede9797eb3.jpg

查看mysql数据库所有内容,加上\G让内容更清晰

select * from mysql.db;

869b59178b0213335b6b856c08fa7b145f9.jpg

两种数据引擎,mysql数据库里所有的表默认使用的引擎是myisam(会自动统计有多少行),innodb不会统计行数(每次查询每次统计)

myisam innodb

查看db数据库的所有内容

select db from mysql.db;

65ebd98ecd7c6cd3e5a328869a3edcf55c8.jpg

查看db和user数据库的所有内容

select db,user from mysql.db;

e5858ca283098df43734fa4606fb2bfb26e.jpg

select * from mysql.db where host like '192.168.%'\G;

在db1数据,t1表插入数据,id为1,name为abc,对于字符串要加单引号,数字可以不加

insert into db1.t1 values (1,'abc');

0c62d9fe1975d4179118ef2392610669e7e.jpg

更改id为1,name为aaa

update db1.t1 set name='aaa' where id=1

3ae076b0a1a4353fbdceae815381a80f37f.jpg

删除t1表里面id等于1的字段

delete from db1.t1 where id=1;

08b512bf93841c49b91eb5b17961da2d0a7.jpg

清空一个表,仅清空表内容,表结构还留着

truncate db1.t1;

870f410b6ea888e3e8a468f13bb7418ba6e.jpg

删除t1表

drop teble t1;

删除db1数据库

drop database db1;

6、mysql数据库备份恢复

4d8e135c23d0d2dfbbb1bbe28f5655aa8cf.jpg

备份mysql库/tmp/mysqlbak.sql文件

mysqldump -uroot -pzhouliang mysql > /tmp/mysqlbak.sql

ffbac80dad2e4aae1e27399d62d59476774.jpg

创建mysql2库

mysql -uroot -pzhouliang -e "create database mysql2"

ce19708a4f00ae2147ad6d110fc0cda9a59.jpg

恢复数据到mysql2库

mysql -uroot -pzhouliang mysql2 < /tmp/mysqlbak.sql

de8c2546ce09073d7d958bf1fc502fa8c4d.jpg

进入mysql2数据库

mysql -uroot -pzhouliang mysql2

查看当前数据库

select database();

0df444375003dcee2dff55baf1f6081645f.jpg

备份mysql库user表

mysqldump -uroot -pzhouliang mysql user > /tmp/user.sql

f2b2b316c05239b61abbf5354d7286f6efd.jpg

恢复mysql2库user表

mysql -uroot -pzhouliang mysql2 < /tmp/user.sql

2c9051e054606e61b5e2efb2f440c958338.jpg

备份所有库

mysqldump -uroot -pzhouliang -A > /tmp/mysql_all.sql

e75cbfffbf161c77b831976f9d62f1399d0.jpg

只备份表结构

mysqldump -uroot -pzhouliang -d mysql2 > /tmp/mysql2.sql

c8098c2be4dcf4f953a69a7b6fc0d7d2406.jpg

-A表示备份所有数据库;-d 数据库名只备份数据表的结构,不备份数据

转载于:https://my.oschina.net/u/3992081/blog/2991243

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值