更改mysql数据库的root密码
修改root密码命令为
/usr/local/mysql/bin/mysql -uroot
定义环境变量
临时定义环境变量
export PATH=$PATH:/usr/local/mysql/bin/ //临时定义环境变量
echo $PATH //显示环境变量
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/tmp/:/root/bin:/usr/local/mysql/bin/
永久定义环境变量
vim /etc/profile
增加代码
export PATH=$PATH:/usr/local/mysql/bin/
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/local/mysql/bin:/root/bin:/usr/local/mysql/bin
source /etc/profile //生效文件
登录MySQL
指定使用账号root密码登录,-u后面为账号,-p后面可以跟密码;
mysql -uroot -p
mysql -uroot -p'123456789'
设置密码
在空密码下指定密码为123456
mysqladmin -uroot password '123456'
在有密码的情况下修改密码
旧密码123456修改为123456789
mysqladmin -uroot -p'123456' password '123456789'
注意:不是在登录mysql里面修改,mysqladmin不是mysql命令,而是Linux系统命令;
忘记root密码
编辑配置文件
vim /etc/my.cnf
在[mysqld]下增加一行skip-grant
预览
[mysqld]
skip-grant //跳过密码验证
datadir=/data/mysql
socket=/tmp/mysql.sock
重启mysql服务
/etc/init.d/mysqld restart
登录mysql修改
mysql -uroot
use mysql;
update user set password=password('123456') where user='root';
取消配置文件配置
vim /etc/my.cnf
取消代码
skip-grant
重启mysql服务
/etc/init.d/mysqld restart
测试验证
mysql -uroot -p'123456'
使用密码123456登录成功
连接MySQL
常用的连接命令
mysql -uroot -p'123456' //连接本机
mysql -uroot -p'123456' -h127.0.0.1 -P3306 //连接远程机器127.0.0.1为ip,3306为端口
mysql -uroot -p'123456' -S/tmp/mysql.sock //使用sock方式连接,只适合本机连接
mysql -uroot -p'123456' -e "show databases" //列出mysql的所有数据库,用于shell命令
mysql -uroot -p'123456' -e "show databases"
Warning: Using a password on the command line interface can be insecure.
+--------------------+
| Database |
+--------------------+
| information_schema || mysql || performance_schema || test |
+--------------------+
MySQL常用命令
必须登录mysql才能使用的命令
使用命令后面必须加;号
查询库 show databases;
切换库 use mysql;
查看库里的表 show tables;
查看表里的字段 desc tb_name;
查看建表语句 show create table tb_name\G;
查询mysql所有用户和限制主机select user,host from user;
查询指定用户的权限show grants for '用户名'@'限制ip';
查看当前用户 select user();
查看当前使用的数据库 select database();
创建库 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> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema || mysql || performance_schema || test |
+--------------------+
4 rows in set (0.00 sec)
切换库
mysql> use mysql;
Database changed
查看库里面的表
mysql> show tables;
+---------------------------+
| Tables_in_mysql |
+---------------------------+
| columns_priv || db || event || func || general_log || help_category || help_keyword || help_relation || help_topic || innodb_index_stats || innodb_table_stats || ndb_binlog_index || plugin || proc || procs_priv || proxies_priv || servers || slave_master_info || slave_relay_log_info || slave_worker_info || slow_log || tables_priv || time_zone || time_zone_leap_second || time_zone_name || time_zone_transition || time_zone_transition_type || user |
+---------------------------+
28 rows in set (0.00 sec)
查看表里面的字段
注意:格式是
desc [表名];
desc user;
mysql> desc user;
+------------------------+-----------------------------------+------+-----+-----------------------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------------------+-----------------------------------+------+-----+-----------------------+-------+
| Host | char(60) | NO | PRI | | || User | char(16) | NO | PRI | | |
| Password | char(41) | NO | | | || Select_priv | enum('N','Y') | NO | | N | |
| Insert_priv | enum('N','Y') | NO | | N | || Update_priv | enum('N','Y') | NO | | N | |
| Delete_priv | enum('N','Y') | NO | | N | || Create_priv | enum('N','Y') | NO | | N | |
| Drop_priv | enum('N','Y') | NO | | N | || Reload_priv | enum('N','Y') | NO | | N | |
| Shutdown_priv | enum('N','Y') | NO | | N | || Process_priv | enum('N','Y') | NO | | N | |
| File_priv | enum('N','Y') | NO | | N | || Grant_priv | enum('N','Y') | NO | | N | |
| References_priv | enum('N','Y') | NO | | N | || Index_priv | enum('N','Y') | NO | | N | |
| Alter_priv | enum('N','Y') | NO | | N | || Show_db_priv | enum('N','Y') | NO | | N | |
| Super_priv | enum('N','Y') | NO | | N | || Create_tmp_table_priv | enum('N','Y') | NO | | N | |
| Lock_tables_priv | enum('N','Y') | NO | | N | || Execute_priv | enum('N','Y') | NO | | N | |
| Repl_slave_priv | enum('N','Y') | NO | | N | || Repl_client_priv | enum('N','Y') | NO | | N | |
| Create_view_priv | enum('N','Y') | NO | | N | || Show_view_priv | enum('N','Y') | NO | | N | |
| Create_routine_priv | enum('N','Y') | NO | | N | || Alter_routine_priv | enum('N','Y') | NO | | N | |
| Create_user_priv | enum('N','Y') | NO | | N | || Event_priv | enum('N','Y') | NO | | N | |
| Trigger_priv | enum('N','Y') | NO | | N | || Create_tablespace_priv | enum('N','Y') | NO | | N | |
| ssl_type | enum('','ANY','X509','SPECIFIED') | NO | | | || ssl_cipher | blob | NO | | NULL | |
| x509_issuer | blob | NO | | NULL | || x509_subject | blob | NO | | NULL | |
| max_questions | int(11) unsigned | NO | | 0 | || max_updates | int(11) unsigned | NO | | 0 | |
| max_connections | int(11) unsigned | NO | | 0 | || max_user_connections | int(11) unsigned | NO | | 0 | |
| plugin | char(64) | YES | | mysql_native_password | || authentication_string | text | YES | | NULL | |
| password_expired | enum('N','Y') | NO | | N | |
+------------------------+-----------------------------------+------+-----+-----------------------+-------+
43 rows in set (0.00 sec)
查看创建表的语句
show create table user\G;
列出所有用户和限制ip
select user,host from user;
mysql> select user,host from user;
+------+---------------+
| user | host |
+------+---------------+
| root | 127.0.0.1 || repl | 192.168.188.2 |
| root | ::1 || | localhost |
| root | localhost || | shu001 |
| root | shu001 |
+------+---------------+
7 rows in set (0.00 sec)
查询指定用户的授权信息
这条命令与上一条命令配合使用select user,host from user;
先列出所有用户的名称与限制主机名,然后使用这条命令查询权限
show grants for '用户名'@'限制ip';
mysql> show grants for 'root'@'127.0.0.1';
+---------------------------------------------------------------------+
| Grants for root@127.0.0.1 |
+---------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'127.0.0.1' WITH GRANT OPTION |
+---------------------------------------------------------------------+
1 row in set (0.00 sec)
查看当前用户
select user();
mysql> select user();
+----------------+
| user() |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.00 sec)
查看当前使用的数据库
select database();
mysql> select database();
+------------+
| database() |
+------------+
| mysql |
+------------+
1 row in set (0.00 sec)
创建库
mysql> create database db1;
Query OK, 1 row affected (0.00 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema || db1 || mysql || performance_schema || test |
+--------------------+
5 rows in set (0.00 sec)
创建表
use db1; //切换到db1库
create table t1(`id` int(4),`name` char(40)); //注意:中间使用的是反引号,创建表t1
查看数据库版本
mysql> select version();
+-----------+
| version() |
+-----------+
| 5.6.36 |
+-----------+
1 row in set (0.00 sec)
查看数据库状态
show status;
查看参数
show variables;
show variables like 'max_connect%'; //模糊查询max_connect,后面必须加%
set global max_connect_errors=1000; //修改max_connect_errors参数为1000
查看队列
show processlist;
show full processlist; //查看哪些用户在连接数据库(完整版)
---------------------------------------------------------------------------------------------------------------
13.4 mysql用户管理13.5 常用sql语句13.6 mysql数据库备份恢复
MySQL用户管理
创建用户
grant all on *.* to 'user1'@'localhost' identified by '123456';
grant all on db1.* to 'user2'@'%' identified by'123456'; //创建user2用户,所有ip都能登录,指定权限为db1库下的所有表;@ 表示所有的IP
grant all on *.* to 'user1'@'127.0.0.1' identified by '123456'; //创建1用户,所有权限 前面表示库名所有库 客户端IP 密码123456
mysql -uuser1 -p123456 -h127.0.0.1 因为我指定soke所以必须-h
• grant SELECT,UPDATE,INSERT on db1.* to 'user2'@'192.168.133.1' identified by 'passwd'; //有select update insert db1权限 user2 来源IP
• grant all on db1.* to 'user3'@'%' identified by 'passwd'; //所有权限db1库 所有来源IP
• show grants; //查看你所有的授权
• show grants for user2@192.168.133.1;
flush privileges;
刷新授权
.:表示所有库和表;
user1:用户名;
localhost:登录ip,默认localhost为本机登录ip,也可以使用%代表所有;
查看当前用户权限
show grants;
show grants for 'user1'@'%'; //查询用户user1,限制ip为所有的权限;
常用的sql语句
select:查看;
insert:插入;
update:更改;
drop:删除;
查看:
统计指定表的行数;
select count(*) from mysql.user; //count()表示统计行数;*代表所有;
+----------+
| count(*) |
+----------+
| 9 |
+----------+
1 row in set (0.01 sec)
查看指定表的内容
select * from mysql.db; //查看mysql库下db表的所有内容;
查看指定表下带字段的内容
select db from mysql.db; //查找mysql库下db表里面db列的内容;
select db,user from mysql.db; //查找mysql库下db表中db列与user列的内容;
模糊查询
select * from mysql.db where host like '192.168.%'; //查找mysql.db下带有192.168.字样的列出来
插入数据
insert into db1.t1 values (1,'abc'); //在db1.t1中,插入两条数据,第一条为数字1,第二条为字符串abc;
mysql>select * from db1.t1;
+------+------+
| id | name |
+------+------+
| 1 | abc |
+------+------+
1 row in set (0.00 sec)
更改数据
update db1.t1 set name='aaa' where id=1; //将db1.t1的id为1的 name内容更改为字符串aaa
mysql> select * from db1.t1;
+------+------+
| id | name |
+------+------+
| 1 | aaa || 2 | 123 |
+------+------+
2 rows in set (0.00 sec)
清空一个表的内容
truncate table db1.t1;
truncate table db1.t1; //将db1.t1表的内容全部清空掉;
select * from db1.t1; //查询db1.t1的内容
Empty set (0.00 sec)
删除
drop table db1.t1; //删除t1表
drop database db1; //删除数据库db1
MySQL数据库的备份与恢复
备份指定数据库
mysqldump -uroot -p'123456' mysql > /tmp/backup/mysqlbak.sql //将名为mysql的数据库备份到指定目录下
恢复数据库
mysql -uroot -p'123456' mysql < /tmp/backup/mysqlbak.sql //将指定目录下的备份文件恢复为mysql数据库
备份表
mysqldump -uroot -p'123456' mysql user >/tmp/backup/user.sql //将mysql下的user表备份到指定目录
恢复表
mysql -uroot -p'123456' mysql < /tmp/backup/user.sql //将指定目录下的表恢复到mysql库下
备份所有数据库
mysqldump -uroot -p'123456' -A > /tmp/backup/123.sql //将所有数据库备份到指定目录
只备份表结构
mysqldump -uroot -p'123456' -d mysql > /tmp/backup/mysql-biaojg.sql
常用SQL语句
• select count(*) from mysql.user; //查看有多少行
• select * from mysql.db\G; //查看mysqldb
• select db from mysql.db;
• select db,user from mysql.db;
• select * from mysql.db where host like '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;
show create table user\G; //查看引擎