数据库初始化
mysqld --initialize-insecure --user=mysql --datadir=/var/lib/mysql
查询sock位置
select @@socket;
取出表结构
show create table 表名;
导出全部数据库
mysqldump -uroot -p123.com --all-databases > all.sql
导入全部数据库
mysql -uroot -p < all.sql
查询数据库
show databases;
查询用户
select user,host ,authentication_string from mysql.user;
修改用户访问IP段
rename user 'username'@'%' to 'username'@'10.0.2.%';
进入zabbix数据库
use zabbix;
查看数据库表
show tables;
登录导入数据库
source /root/all.sql;
查询权限列表
show privileges;
从库更新sys库
mysql_upgrade -uroot -p
授权一个管理员用户
grant all on *.* to adm_qu@'10.0.0.5%' identified by 'qu@123.com' with grant option;
授权一个业务用户wp_user1用户可以通过10.0.0.% 操作wordpress库下所有表
grant select ,insert ,update, delete on wordpress.* to wp_user1@'10.0.0.%' identified by 'Wpuser@123.Com';
回收权限
注意: MySQL中 修改权限,不能重复授权。所有授权都是相加关系。所以需要回收权限。
revoke delete on wordpress.* from wp_user1@'10.0.0.%';
查看授权
show grants for wordpress@'10.0.0.%';
创建用户
create user wen@'10.0.0.%' identified by '123';
create user qu@'localhost' identified by '123';
创建只读用户
GRANT SElECT ON *.* TO 'username'@'%' IDENTIFIED BY "password";
删除用户
drop user qu@'localhost';
修改用户密码
alter user wen@'10.0.0.%' identified by '123456';
创建数据库
create database <数据库名>;
删除数据库
drop database <数据库名>;
终端删除数据库
mysqladmin -u root -p drop <数据库名>
刷新数据库
flush privileges;
刷新日志
flush logs;
添加索引
添加索引
查看语句是否使用了索引:
explain 语句 (看possible_keys)
查看表中都有哪些索引:
show index from table_name(表名)
创建/删除索引:
(1)使用alter语句
alter table t1(表名) add index namein(索引名) (name(列));
alter table t1(表名) drop index namein(索引名) ;
(2)使用create语句
create index namein(索引名) on t1(表)(name(列));
drop index 'namein(索引名)' on t1(表);
查询最多的10个慢日志sql
mysqldumpslow -s r -t 10 慢日志路径
创建表
CREATE TABLE IF NOT EXISTS `xxx`(
`xxx` INT UNSIGNED AUTO_INCREMENT,
`runoob_title` VARCHAR(100) NOT NULL,
`runoob_author` VARCHAR(40) NOT NULL,
`submission_date` DATE,
PRIMARY KEY ( `xxx` )
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
管理员密码忘记的处理
(1)停数据库
[root@db01 ~]# /etc/init.d/mysqld stop
(2)“单用户”模式启动数据库
service mysqld start --skip-grant-tables --skip-networking
或者:
mysqld_safe --skip-grant-tables --skip-networking &
(3)登陆数据库改密码
mysql> alter user root@'localhost' identified by '123';
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
mysql> flush privileges ;
Query OK, 0 rows affected (0.01 sec)
mysql> alter user root@'localhost' identified by '123';
Query OK, 0 rows affected (0.00 sec)
(4)重启数据库到正常模式
[root@db01 ~]# service mysqld restart
Shutting down MySQL.. SUCCESS!
Starting MySQL. SUCCESS!