1、mysql的启动
(1)mysql.server start
mysql.server在mysql的安装包下面的文件夹support-files下面
(2)/etc/init.d/mysqld start
如果发现根目录下面没有mysqld,可以把mysql.server拷贝到此路径下来,就可以启动了
(3)service mysqld start
针对rpm包的安装方式
(4)mysqld --defaults-file=/user/my3306/my.cnf &
使用配置文件启动,&表示后台运行,不在控制界面显示
(5)推荐启动命令:mysqld_safe --defaults-file=/user/my3306/my.cnf &
mysqld_safe是mysqld的父进程,监控mysqld,如果mysqld关闭,则会自动启动mysqld,关闭时需要先关闭mysqld_safe,再关闭mysqld
(6)多实例启动:mysqld_multi start
多实例启动需要配置配置文件
2、MySQL的关闭
(1)service mysqld stop
(2)/etc/init.d/mysqld stop
(3)mysqladmin -S /user/my3306/run/mysql.sock shutdown &
推荐使用此方法关闭,在关闭之前,把数据刷新到磁盘
(4)mysqld_multi stop
多实例关闭
(5)kill -9 pid
不推荐,异常关闭
3、MySQL的登陆
(1)本地登陆:mysql -u $username -p $password
(2)远程登陆:mysql -u $username -p $password -h $ip
(3)多实例登陆:mysql -u $username -p $password -P $port
4、账户权限设置
(1)创建用户
方法一:create user......
方法二:insert into user......
如果使用方法二,需要刷新权限flush privileges,因为此表是做了持久化的,直接insert,缓存是不知道的。
(2)查看用户权限
show grants for user@'%' usage权限代表无任何权限,mysql的test数据库任何用户都可以登录
(3)用户授权
给予所有权限:grant all privileges on *.* to user@'%' identified by 'password';
给予查询/插入/更新/删除权限:grant select/insert/update/delete on *.* to user@'%' identified by 'password';
此命令不用进行权限刷新,因为grant的时候,首先向user插入用户,再刷新缓存。
(4)删除用户
drop user username;
5、数据库用户安全配置
(1)禁用多余的管理员账号
(2)删除DB表数据
(3)删除test库
(4)修改管理员账户名
(5)密码复杂度要求
(6)权限最小化
6、线上可以直接删除表吗?
删除表的流程
show tables;
show processlist;
rename table table1 to table2;
mysqldump -h 192.168.X.X -uroot -p 'password' table2>/tmp/dump.sql
drop table table1;
7、如何迁移数据库
以上步骤相当于配置主从复制,只是配置完需要主从切换
(1)grant replication slave,replication client,reload,super on *.* to 'user'@'192.168.%'identified by 'password';
(2)配置主从不同的server_id
(3)mysqldump --single-transation --master-data=2 -uroot database</tmp/dump.sql
(4)拷贝备份文件到服务器B
(5)在服务器B创建数据库database,接着进行恢复
use database;
source /tmp/dump.sql;
(6)change master to master_host='192.168.%',master_user='root',master_password='password',master_port=3306,master_log_file='mysql-bin.000001',master_log_pos=783;
(7)start slave开始从复制,注意排查错误
(8)show variables like '%read_only%';
注意:set global read_only=on;只能暂时生效,建议去my.cnf修改
(9)此时已配置完毕,应用程序指向服务器B就可以了。
8、MySQL线上升级
1、比如说5.6升级到5.7,类似于步骤7的数据库迁移。
2、下载新版本的安装包,解压,修改软链接,启动
注意:mysql_dump是对数据字典的升级