一、设置密码
mysqladmin -uroot password '+密码' //设置 MySQL 密码 mysql -uroot -p+密码 //登录 MySQL
忘记了 MySQL 密码怎么办呢?不要急下面就来了解如何忘记密码后更换密码。
先要找到 /etc/my.cnf 文件来配置它。
skip-grant //忽略用户直接登录 service msyql sertart //重启 MySQL
配置完成之后 service msyql sertart 重启 MySQL 方可使用。mysql -uroot 进入 MySQL 去修改里面的密码即可。
# 进入 MySQL [root@bogon ~]# mysql -uroot # 进入 MySQL 这个用户 mysql> use mysql; # 在 MySQL 这个用户中去修改 password mysql> update user set password=password('000000') where user='root';
Ctrl+D //退出 MySQL
修改完成之后把 /etc/my.cnf 文件里修改的那条代码删掉。(mysqladmin -uroot password '+密码')直接登录就行了。
二、链接 MySQL
mysql -uroot -p //隐藏密码式登录 MySQL mysql -uroot -p+密码 -h +IP地址 -P3306 //远程登陆 MySQL (p是大写) mysql -uroot -p+密码 -S /rmp/mysql.sock //和直接链接一样 mysql -uroot -p+密码 -e "show databases;" //Linux 下查看 MySQL 的库
这是开启可以远程链接的教程。Linux中 MySQL 授权远程连接的方法步骤_Mysql_脚本之家 (jb51.net)
三、常用命令
# 查询库 show databases; # 切换库 use mysql; # 查看库里的表 show tables; # 查看表里的字段 desc tb_name; # 查看建表语句 show create table tb_name\G; # 查看当前用户 select user(); # 查看当前使用的数据库 select database(); # 创建库 create database db1; # 创建表 use db1; create table t1(`id` int(4), `name` char(40)); # 删除表 drop table table_name; # 查看当前数据库版本 select version(); # 查看数据库状态 show status; # 查看各参数 show variables; # 查看指定参数 show variables like 'max_connect%'; # 修改参数 set global max_connect_errors=1000; # 查看队列 show processlist; show full processlist; # 查看行数 select count(*) from mysql.user; # 查看mysql数据库db表所有内容 select * from mysql.db; # 查看 db这一个字段 select db from mysql.db; # 查看 db,user这两个字段 select db,user from mysql.db; # 查看 host字段 满足地址为192.168.字段的信息 select * from mysql.db where host like '192.168.%'; # 在db1数据库t1表插入数据 insert into db1.t1 values (1, 'abc'); # 更新 改 update db1.t1 set name='aaa' where id=1; # 删除一行数据 delete from db1.t1 where id=3; # 清空表,但是保存表结构 truncate table db1.t1; # 删除表 drop table db1.t1; # 删除库 drop database db1;
四、用户管理
都是在进入MySQL后输入的。
select user,host from mysql.user; //查看用用户
show grants //默认查看root的授权
show grants for user2@192.168.0.0; //查看某个用户授权
/root/.mysql_history //查看历史文件
grant 授权、all 所有权限 增删改查、on 在哪个库、*.* 表示对所有的库,所有的表、to 对哪一个用户, 也可以指定来源IP、identified 认证方式,by 密码 grant all on *.* to 'user1' identified by '000000'; //给user用户授权(给user1 授权另一个所有权限密码是000000)
IP登录(例:grant all on *.* to 'user1'@'127.0.0.1' identified by 'passwd';)
grant all on *.* to 'user1'@'+本地地址' identified by '+密码'; //使用ip才能登陆(单个IP)
使用某个段登录(例:grant all on *.* to 'user1'@'192.168.200.%' identified by 'passwd';)
grant all on *.* to 'user1'@'192.168.200.%' identified by '+密码'; //使用某个段登录
使用sock登录
grant all on *.* to 'user1'@'localhost' identified by 'passwd'; grant SELECT,UPDATE,INSERT on db1.* to 'user2'@'192.168.133.1' identified by 'passwd'; grant all on db1.* to 'user3'@'%' identified by 'passwd';
五、备份
在 Linux 下备份的 MySQL(例如:mysqldump -uroot -p000000 mysql > /tmp/mysql.sql)
# 备份库 mysqldump -uroot -p+密码 mysql > /tmp/mysql.sql # 恢复库 mysql -uroot -p+密码 mysql < /tmp/mysql.sql # 备份表 mysqldump -uroot -p+密码 mysql user > /tmp/user.sql # 恢复表 mysql -uroot -p+密码 mysql < /tmp/user.sql # 备份所有库 mysqldump -uroot -p+密码 -A >/tmp/123.sql # 只备份表结构 mysqldump -uroot -p+密码 -d mysql > /tmp/mysql.sql