MySQL DBA日常操作

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是对数据字典的升级

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值