MySQL日常管理 Part 1:基础篇

1 启动、关闭 MySQL

1.1 单实例MySQL启动        

--- 数据库脚本启动MySQL

cp /app/mysql5.7/support-files/mysql.server /etc/init.d/mysqld

/etc/init.d/mysqld start

/etc/init.d/mysqld stop


--- 初始化数据库方法启动MySQL

mysqld_safe --user=mysql > /dev/null 2>&1 &

--- 查看MySQL服务端口

ss -lnt | grep 330

--- 查看MySQL服务进程

ps -ef | grep mysql | grep -v grep

1.2 单实例MySQL停止

--- 脚本关闭数据库服务

/etc/init.d/mysqld stop

--- 管理命令关闭数据库服务

mysqladmin -uroot -proot123456 shutdown

--- 杀进程命令关闭数据库服务

kill $pid

killall mysqld

pkill mysqld

1.3 多实例MySQL启停

--- 启动3306实例

mysqld_safe --defaults-file=/multinst/3306/my.cnf 2>&1 > /dev/null &

--- 关闭3306实例

mysqladmin -uroot -proot123456 -S /multinst/3306/tmp/mysql.sock shutdown

注:多实例启动时需指定my.cnf,关闭时需指定socket文件。

2 MySQL链接方法

2.1 MySQL客户端

        MySQL自带的客户端在/app/mysql5.7/bin下,常用管理命令mysql、mysqladmin、mysqldump、mysqlbinlog。

2.2 MySQL连接方式

--- TCP/IP方式

mysql -uroot -proot123456 -h node1

--- socket方式

mysql -uroot -proot123456 -S /app/mysql5.7/tmp/mysql.sock

2.3 MySQL登录

--- 单实例登录

mysql -uroot -p'root123456'

--- 多实例登录

mysql -uroot -p -S /multinst/3306/tmp/mysql.sock

mysql -uroot -p -S /multinst/3307/tmp/mysql.sock

--- 远程登录

---- 单实例

mysql -uroot -p -h node1

---- 多实例

mysql -uroot -p -h node1 -P3306

mysql -uroot -p -h node1 -P3307

2.4 MySQL链接提示符

        登录MySQL后的提示符“mysql>”,日常环境中需要配置,区分生产环境和测试环境

--- session级别配置

mysql -uroot -p

prompt \u@node1 \r:\m:\s->

--- my.cnf配置

vi /etc/my.cnf

[client]
prompt = \\u@node1 \\r:\\m:\\s->

--- 多实例my.cnf配置

vi /multinst/3306/my.cnf

[client]
prompt = \\u@node1 \\r:\\m:\\s->

mysql --defaults-extra-file=/multinst/3306/my.cnf -S /multinst/3306/tmp/mysql.sock

3 MySQL数据库安全策略配置

3.1 安全策略

  • 数据库服务器禁止开通公网访问权限
  • root密码复杂度高
  • 删除数据库中无用账户
  • 删除默认数据库
  • 业务用户,权限尽可能小
  • 登录CLI操作不使用明文密码
--- 删除所有用户

delete from mysql.users;

--- 创建管理员

grant all privileges on *.* to system@'localhost' identified by 'root123' with grant option;

flush privileges;

3.2 root用户密码管理

3.2.1 配置root密码

--- 单实例

mysqladmin -u root password 'root123456'

--- 多实例

mysqladmin -u root password 'root123456' -S /multinst/3306/tmp/mysql.sock

3.2.2 修改root密码

        linux命令方式

--- 单实例

mysqladmin -u root -p'root123456' password 'root123'

--- 多实例

mysqladmin -u root -p'root123' password 'root123456' -S /multinst/3306/tmp/mysql.sock

        SQL语句方式

UPDATE mysql.user SET password=PASSWORD("root123") WHERE user='root' and host='localhost';

flush privileges;

3.2.3 root密码找回

        单实例找回root密码

--- 停止mysql服务

/etc/init.d/mysqld stop

--- 启动mysql服务,附带“--skip-grant-tables”参数忽略授权表验证

mysqld_safe --skip-grant-tables --user=mysql >/dev/null 2>&1 &

--- 连接数据库

mysql

--- 配置新密码

UPDATE mysql.user SET password=PASSWORD("root123") WHERE user='root' and host='localhost';

FLUSH PRIVILEGES;

quit

--- 重启mysql服务

/etc/init.d/mysqld stop

/etc/init.d/mysqld start

--- 使用新密码登录数据库

mysql -uroot -proot123

        多实例找回root密码

--- 关闭3306实例数据库

killall mysqld

--- 启动mysql服务,附带“--skip-grant-tables”参数忽略授权表验证

mysqld_safe --defaults-file=/multinst/3306/my.cnf --skip-grant-tables --user=mysql >/dev/null 2>&1 &

--- 登录3306实例

mysql -S /multinst/3306/tmp/mysql.sock

--- 修改新密码

UPDATE mysql.user SET password=PASSWORD("root123") WHERE user='root' and host='localhost';

FLUSH PRIVILEGES;

quit

--- 重启3306实例

/multinst/3306/mysql stop

/multinst/3306/mysql start

--- 使用新密码登录3306实例

mysql -uroot -p'root123' -S /multinst/3306/tmp/mysql.sock

 

 

相关链接

MySQL日常管理 Part 2:字符集

MySQL日常管理 Part 3:日志篇

 

参考 《MySQL 5.7 Reference Manual》、《MySQL Source-Configuration Options

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值