一、更改root密码
1.使用/usr/local/mysql/bin/mysql -uroot进入mysql
为了使用方便,需要更改环境变量
# export PATH=$PATH:/usr/local/mysql/bin
2.创建MySQL密码
(1)若没有密码,则使用命令为用户创建初始密码
# mysqladmin -uroot password '000000'
注释:可以忽略warning内容,指的是明码输入屏幕不安全
(2)使用命令mysql -uroot -p000000,完成初始密码登录
3.密码重置(当密码不记得时)
(1)修改配置文件
修改完成后重启mysql服务
# /etc/init.d/mysqld restart
或
# systemctl restart mysqld
使用命令登录MySQL(修改的配置端,是完成忽略授权的操作,可以直接登入,无需输入用户名密码)切换到MySQL库,对user表进行更新操作
查看user表
修改密码
mysql> updata user set password=password('zhou') where user='root';
查询密码
mysql> select password from user where user='root';
修改完成后,确认新密码登录有效。把/etc/my.cnf改回原有状态,并重启mysql服务
二、链接MySQL的方法
1. # mysql -uroot -p'zhou'
2.# mysql -uroot -p'zhou' -h127.0.0.1 -P3306
3.# mysql -uroot -p'zhou' -S/tmp/mysql.sock
4.# mysql -uroot -p'zhou' -e "show databases"
三、MySQL常用命令
1.查询库 show databases;
2.切换库 use mysql;
3.查看库里的表 show tables;
4.查看表里的字段 desc user;
5.查看建表的语句 show create table user\G;
select * from user\G;
6.查看当前用户 select user();
7.查看当前使用的数据库select database();
8.创建库 create database db1;
9.创建表 use db1; create table t1(``id`` int(4),``name`` char(40));
10.查看t1这个表 show create table t1\G;
11.定义默认的字符集
drop table t1;
create table t1(`id` int(4),`name` char(40)) ENGINE=InnoDB DEFAULT CHARSET=utf8;
12.查看当前数据库版本 select version();
13.查看数据库状态 show status;
14.查看各参数 show variables;
查看指定的参数show variables like 'max_connect%';
15.修改参数 set global max_connect_errors=1000;
16.查看队列 show processlist; show full processlist;
四、MySQL创建用户及授权
1.进行授权
(1)grant all on *.* to ‘user1’identified by ‘passwd’;
all:指所有权限
on .:表示在所有库里
user1:表示通过指定用户
identified by ‘passwd’:表示用密码登录
grant all on *.* to 'user1'@'127.0.0.1'identified by '123456a';
注释:由于创建用户时指定ip了,所以使用这个用户登录时,必须加上ip
若不想登录的时候输入host,就默认socket登录,应做如下操作
现在就可以不输入host即可登录
(2)grant还可以根据具体的权限授权
grant SELECT,UPDATE,INSERT on db1.* to 'user2'@'192.168.130.137' identified by 'passwd';
还可以对所有ip进行授权
grant all on db1.* to 'user3'@'%' identified by 'passwd';
2. 查看授权表
(1)show grants;
(2)查看某一个用户的授权表
五、MySQL常用SQL语句
1.查看表内行数select count(*) from mysql.user;
2.查看 db 表内的内容select * from mysql.db;
3.查看 db 表内含有 db 字段的内容select db from mysql.db;
4.搜索查看多个字段select db,user from mysql.db;
5.查询 host 为 127.0 的内容select * from mysql.db where host like '192.168.%';
6.向 db1.t1 中插入内容 insert into db1.t1 values (1, 'abc');
7.把 id=1 的字段内容更新成aaa
8.清空 db1.t1 表内的内容 truncate table db1.t1;
9.删除 db1.t1 表内的内容drop table db1.t1;
10.清空 db1.t1 数据库
六、MySQL数据库的备份与恢复
1.查看库的内容 # mysqldump -uroot -pzhou mysql
备份库 # mysqldump -uroot -pzhou mysql > /tmp/mysql.sql
查看mysql.sql文件
# less /tmp/mysql.sql
2.恢复库 # mysql -uroot -pzhou mysql2 < /tmp/mysql.sql
先在mysql中创建mysql2的库
然后再将原来备份的库恢复
然后直接进入mysql2的库
然后查看当前所在库
最后看表是否恢复
3.备份表 # mysqldump -uroot -pzhou mysql user > /tmp/user.sql
4.恢复库 # mysql -uroot -pzhou mysql < /tmp/user.sql
5.备份所有库 # mysqldump -uroot -pzhou -A > /tmp/all.sql
6.只备份表结构 # mysqldump -uroot -pzhou -d mysql > /tmp/tables.sql
在root下面能找到mysql的命令历史
# vim .mysql_history(查看mysql的历史命令)
Mysql历史命令没有grant的命令,应为有关授权,相关安全系数比较高
当授权的用户不够时,而且密码不记得的情况下,操作如下
只需将show grant的内容复制下来,然后将需要授权的用户改一下就好了