更改root密码
• /usr/local/mysql/bin/mysql -uroot
• 更改环境变量PATH,增加mysql绝对路径
export PATH=$PATH:/usr/local/mysql/bin/ //临时生效
vim /etc/profile //把上面内容添加至末尾,永久生效
• mysqladmin -uroot password '123456' //在没有密码的情况下添加密码
• mysqladmin -uroot -p123456 password '654321' //在知道密码的情况下更改密码
• mysql -uroot -p654321 密码登陆
• 密码重置
• vi /etc/my.cnf //增加skip-grant
• 重启mysql服务 /etc/init.d/mysqld restart
• mysql -uroot //这里就不用密码就可以登陆了
• use mysql; //使用mysql库
• select password from user; //我们的密码存在user表里面,关键字为password
• update user set password=password('cc123') where user='root'; //更改root的登陆密码
修改完成后需要去/etc/my.cnf里面去把skip-grant删除,然后重启mysql服务,就能使用我们修改的密码进行登陆了。
连接MySQL
mysql -uroot -p123456
mysql -uroot -p123456 -h127.0.0.1 -P3306 #通过ip端口登陆
mysql -uroot -p123456 -S/tmp/mysql.sock #通过sock登陆
mysql -uroot -p123456 -e “show databases” #登陆后操作某条命令
MySQL常用命令
查询库 show databases;
切换库 use mysql;
查看库里的表 show tables;
查看表里的字段 desc tb_name;
查看建表语句 show create table tb_name\G;
查看当前用户 select user();
查看当前使用的数据库 select databsase();
创建库 create database db1;
创建表 use db1; create table t1(id int(4), name char(40));
查看当前数据库版本 select version();
查看数据库状态 show status;
查看各参数 show variables; show variables like 'max_connect%';
修改参数 set global max_connect_errors=1000;
查看队列 show processlist; show full processlist;
MySQL创建用户以及授权
grant all on *.* to 'user1' identified by 'passwd'; #创建user1赋予all所有权限。
grant SELECT,UPDATE,INSERT on db1.* to 'user2'@'192.168.133.1' identified by 'passwd'; #创建user2并指定登陆IP为192.168.133.1,然后赋予select,update,insert权限作用于db1数据库下的所有表。
grant all on db1.* to 'user3'@'%' identified by 'passwd'; #%通配所有ip
show grants; #查看权限
show grants for user2@192.168.133.1; #查看指定用户权限
常用SQL语句
select count(*) from mysql.user; #统计mysql库下user表的行数
select * from mysql.db; #查看所有内容
select db from mysql.db; #查看mysql库里的db表
select db,user from mysql.db; #查看mysql库里面db,user表
select * from mysql.db where host like '192.168.%'; #查询mysql库里面db表里的Host以192.168.开头的所有内容
insert into db1.t1 values (1, 'abc'); #插入数据
update db1.t1 set name='aaa' where id=1; #更改数据
truncate table db1.t1; #清空表内数据
drop table db1.t1; #删除表
drop database db1; #删除数据库
MySQL数据库的备份与恢复
备份库 mysqldump -uroot -p123456 mysql > /tmp/mysql.sql
恢复库 mysql -uroot -p123456 mysql < /tmp/mysql.sql
备份表 mysqldump -uroot -p123456 mysql user > /tmp/user.sql
恢复表 mysql -uroot -p123456 mysql < /tmp/user.sql
备份所有库 mysqldump -uroot -p123456 -A >/tmp/123.sql
只备份表结构 mysqldump -uroot -p123456 -d mysql > /tmp/mysql.sql
远程备份 mysqldump -h远程ip -uroot -p123456 mysql > /tmp/mysql.sql
备份多个库 mysqldump -h远程ip -uroot -p123456 --database db1 db2> /tmp/db.sql
备份多个表 mysqldump -h远程ip -uroot -p123456 db1 t1 t2> /tmp/db1_tables.sql