一、更改root密码
查看mysql服务是否启动
未启动服务使用命令 /etc/init.d/mysqld start 启动
首次运行mysql命令是不存在的
mysql命令的路径在/usr/local/mysql/bin/,该路径未在环境变量里面,所有无法使用命令
echo $PATH //查看当前环境变量
export PATH=$PATH:/usr/local/mysql/bin/ //添加临时变量
mysql -uroot //无需密码进入mysql
如果变量要永久生效,需进入/etc/profile编辑配置文件
vim /etc/profile //编辑如下内容,增加在最后一行
export PATH=$PATH:/usr/local/mysql/bin/
source /etc/profile //重新加载配置文件
mysqladmin -uroot password '123456' //给数据库设置密码
mysql -uroot -p //登录mysql
mysqladmin -uroot -p'123456' password '654321' //更改密码
重新登录mysql
mysql密码重置
vi /etc/my.cnf//增加skip-grant
重启服务后,重新进入mysql,无需密码
mysql> use mysql; //进入mysql库
mysql> select * from user; //查看存放用户名密码和权限的表
mysql> update user set password=password('abc123') where user='root'; //更改密码
vim /etc/my.cnf //删除skip-grant
/etc/init.d/mysqld restart //重启服务
使用新密码,重新进入数据库
二、连接MySQL
mysql -uroot -pabc123 //连接本机
mysql -uroot -pabc123 -h127.0.0.1 -P3306 //连接远程数据库
mysql -uroot -pabc123 -S/tmp/mysql.sock //使用sock文件连接,只适合在本机连接
mysql -uroot -pabc123 -e "show databases" //连接mysql之后操作命令
三、MySQL常用命令
mysql> show databases; //查看有哪些数据库
mysql> use mysql; //切换数据库
mysql> show tables; //查看数据库里的表
desc tb_name; //查看表里的字段
show create table tb_name\G; //查看建表语句,\G表示竖排显示
mysql> select user(); // 查看当前用户
记录命令历史文件
mysql> select database(); //查看当前使用的数据库
create database db1; // 创建库
mysql> use db1; //进入库
mysql> create table t1(`id` int(4), `name` char(40)); //创建表
mysql> show create table t1\G; //查看创建表的语句
mysql> drop table t1; //删除表
mysql> create table t1(`id` int(4), `name` char(40)) ENGINE=InnoDB DEFAULT CHARSET=utf8; //指定字符集创建表
mysql> select version(); //查看当前数据库版本
mysql> show status; //查看数据库状态
mysql> show variables; //查看所有参数
mysql> show variables like 'max_connect%'; //查看指定参数
mysql> set global max_connect_errors=1000; //修改参数,在内存中生效,永久生效需修改配置文件/etc/my.cnf
mysql> show processlist; //查看队列,查看哪些用户连接mysql,有哪些操作,有没有锁表
mysql> show full processlist; //查看所有队列
四、MySQL创建用户以及授权
mysql> grant all on *.* to 'user1'@'127.0.0.1' identified by '123456'; //用户授权
使用user1用户连接数据库,由于默认是socket文件,需指定来源ip
授权localhost,就是针对socket
重新用user1用户登录,不指定来源ip
mysql> show grants; //查看所有授权
mysql> show grants for user1@'127.0.0.1'; //指定用户和来源i查看所有授权
授权user2用户
查看user2授权信息
假如user2同时还需要在192.168.0.19这个地址登录,此时只需复制user2授权的信息,更改ip执行命令即可
五、常用SQL语句
select count(*) from mysql.user; //查找mysql数据库user表的行数
select * from mysql.db; //查看表所有的内容
select * from mysql.db\G;
目前常用的数据库引擎有2种:myisam、innodb
select db from mysql.db; //db为字段
select db,user from mysql.db; //db和user2个字段
select * from mysql.db where host like '192.168.%'; //模糊查找,like表示模糊匹配
desc db1.t1; //查询db1数据库t1表的字段
insert into db1.t1 values (1, 'abc'); //插入数据
select * from db1.t1; //查看数据库db1的t1表内容
update db1.t1 set name='aaa' where id=1;
update db1.t1 set id=2 where name='aaa';
delete from db1.t1 where id=1; //删除表数据
truncate table db1.t1; //清空表内容
drop table db1.t1; //删除表数据,包括表结构
drop database db1; //删除数据库
六、MySQL数据库的备份与恢复
mysqldump -uroot -pabc123 mysql > /tmp/mysqlbak.sql //将mysql库备份到tmp目录命名为mysqlbak.sql
mysql -uroot -pabc123 -e "create database mysql2" //创建一个mysql2数据库
mysql -uroot -pabc123 mysql2 < /tmp/mysqlbak.sql //将备份出来的mysql数据库信息导入到mysql2
mysql -uroot -pabc123 mysql2 //直接进入mysql2数据库
show tables; //查看表
对比mysql库的表一致
mysqldump -uroot -pabc123 mysql user > /tmp/user.sql //备份mysql的user表
mysql -uroot -pabc123 mysql2 < /tmp/user.sql //恢复mysql2的user表
mysqldump -uroot -pabc123 -A > /tmp/mysql_all.sql //备份所有库
mysqldump -uroot -pabc123 -d mysql2 > /tmp/mysql2.sql //只备份表结构
扩展
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.csdn.net/yenange/article/details/7556094
根据binlog恢复指定时间段的数据 https://blog.csdn.net/lilongsy/article/details/74726002
mysql字符集调整 http://xjsunjie.blog.51cto.com/999372/1355013