MySQL 基本操作
一、设置密码
mysqladmin -uroot password '+密码' //设置 MySQL 密码
mysql -uroot -p+密码 //登录 MySQL
忘记了 MySQL 密码怎么办呢?不要急下面就来了解如何忘记密码后更换密码。
先要找到 /etc/my.cnf 文件来配置它。
skip-grant //忽略用户直接登录
service mysqld start //重启 MySQL
配置完成之后 service mysqld start 重启 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