更改root密码:
首次进入数据库是不用密码的:
退出的话,直接输入quit或者exit即可。为了使用方便,我们把mysql加入到系统的环境变量PATH里面。
临时修改:PATH=$PATH:/usr/local/bin/mysql/bin
永久修改:echo "PATH=$PATH:/usr/local/bin/mysql/bin" >> /etc/profile 修改后记得source /etc/profile 让配置生效。接下来输入mysql -uroot 就能进入mysql了。
这里解释一下图中-u 的含义,它用来指定要登录的用户,后边可以有空格,也可以无空格,root用户是mysql自带的管理员账户,默认没有密码的,那么如何给root用户设定密码?按如下操作:
使用mysqladmin修改密码后,在使用刚才的登录命令就报错了。
这是我们应该这样登录:(-p加上你的密码)
如果忘记root密码应该怎么重置呢:
修改mysql配置文件/etc/my.cnf,添加skip-grant
然后重启mysql服务 /etc/init.d/mysqld restart
mysql -uroot
use mysql;
update user set password=password('123123') where user='root';
连接MySQL:
使用密码连接本机的数据库:mysql -uroot -p
使用sock文件连接本机数据库:mysql -uroot -p123456 -S/tmp/mysql.sock
命令行执行mysql查询命令:mysql -uroot -p123456 -e "show databases"
连接远程的数据库:mysql -uroot -p -h192.168.128.28 -P3306 (-h:指定远程主机IP,-P指定mysql端口)
MySQL常用命令:
查询当前的库:show databases;
查询某个库的表:先切换库use mysql; 再执行show tables;
查看某个表的全部字段:desc show_log; 也可以使用show create table show_log\G; 直接查看建表语句
查看当前是那个用户:select user();
查看当前所使用数据库:select database();
创建一个新库:create database db1;
创建一个新表:切换库use db1; 建表:create table t1 (`id` int(4),`name` char(40)); 要注意的是,字段名需要用反引号括起来
查看数据库当前版本:select version();
查看当前mysql状态:show status;
查看mysql参数:show variables;
修改mysql的参数:show variables like 'max_connect%'; set global max_connect_errors = 1000; show variables like 'max_connect_errors';
查看当前mysql服务器的队列:show processlist;
查看队列:show processlist; show full processlist;
MySQL用户管理:
grant all on *.* to 'user1' identified by '123456';
all 表示所有的权限(读、写、查询、删除等等操作), *.* 前面的 * 表示所有的数据库,后面的 * 表示所有的表,identified by 后面跟密码,用单引号括起来。这里的user1指的是localhost上的user1
grant all on db1.* to 'user2'@'192.168.2.102' identified by '123456';
指定IP的用户授权,用户和主机的IP之间有一个@,另外主机IP那里可以用%替代,表示所有主机.
grant SELECT,UPDATE,INSERT on db1.* to 'user2'@'192.168.133.1' identified by 'passwd'; //授权部分权限
grant all on db1.* to 'user3'@'%' identified by 'passwd'; //所有主机授权
show grants; //查看授权
show grants for [email protected]; //查看指定用户的授权
如果用户的授权ip变了,就要执行show grants for [email protected]; 拿到结果后,复制结果,修改ip执行(这样就实现了实现添加多个可用ip)
常用sql语句:
查询某表有多少列:select count(*) from mysql.user; (mysql.user表示mysql库的user表;count(*)表示表中共有多少行)
查询表内所有数据:select * 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;
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 -p -A >/tmp/123.sql
只备份表结构 mysqldump -uroot -p123456 -d mysql > /tmp/mysql.sql