mysql(四)mysql的连接管理

一    MySQL自带的连接工具

mysql

常见的特定于客户机的连接选项

-u:指定用户
-p:指定密码
-h:指定主机
-P:指定端口
-S:指定sock
-e:指定SQL
--protocol=name:指定连接方式

(2)第三方的连接工具

使用过的:Sqlyog(Windows尝试)、navicat、MySQL Workbench(Linux下尝试过)、phpMyAdmin

掌握:各个工具的安装和使用方式!

相关参考

(3)应用程序连接MySQL

注意:需要加载对应语言程序的API(Java、Python)

二    mysql启动关闭的流程

一般是脚本启动关闭,/etc/init.d/mysqld start

 

启动流程

#  /etc/init.d/mysqld start ------> mysqld_safe ------> mysqld

关闭

/etc/init.d/mysqld stop 
mysqladmin -uroot -poldboy123 shutdown
#####慎重######
kill -9 pid     # 注意:-9和15的区别!
killall mysqld 
pkill mysqld 

出现问题:

- 1、如果在业务繁忙的情况下,数据库不会释放pid和sock文件(理论上可以删除)
- 2、号称可以达到和Oracle一样的安全性,但是并不能100%达到,性能略差
- 3、在业务繁忙的情况下,丢数据(补救措施,高可用)

老男孩:生产高并发环境野蛮粗鲁杀死数据库进程导致故障企业案例

625某电商网站数据库宕机故障解决实录(上)
625某电商网站数据库宕机故障解决实录(下)

(4)MySQL实例初始化配置

1.初始化配置文件的作用

场景:我要启动实例

问题
1)我不知道我的程序在哪?
2)我也不知道我将来启动后去哪找数据库?
3)将来我启动的时候启动信息和错误信息放在哪?
4)我启动的时候sock文件pid文件放在哪?
5)我启动,你们给了我多少内存?

说明:跟预编译,命令行,配置文件相关

了解:命令行中没有手动指定的,没有指定的(错误日志等)跟初始化或者配置文件有关系!

# 预编译:cmake去指定,硬编码到程序当中去

# 在命令行设定启动初始化配置

编译的参数

--skip-grant-tables                        # 授权表
--skip-networking                          # 网络连接
--datadir=/application/mysql/data          # 数据目录
--basedir=/application/mysql               # 安装目录
--defaults-file=/etc/my.cnf                # 配置文件
--pid-file=/application/mysql/data/wzj.pid # 启动的后pid存储位置
--socket=/application/mysql/data/mysql.sock# 启动后socket的位置
--user=mysql                               # 用户
--port=3306                                # 端口
--log-error=/application/mysql/data/db01.err # 错误日志

mysql编译和nginx编译的一些区别

mysql在cmake编译的时候少模块,可以在后续的配置文件或者命令行启动就OK了,但是Nginx必须重新编译

3)初始化配置文件(/etc/my.cnf)

配置文件读取顺序(重点)

# (1)/etc/my.cnf
# (2)/etc/mysql/my.cnf
# (3)$MYSQL_HOME/my.cnf(前提是在环境变量中定义了MYSQL_HOME变量)
# (4)defaults-extra-file (类似nginx的include,引用或者说是包含)
# (5)~/my.cnf

# 说明:相同的配置,最后的可能覆盖之前的!

# (6)mysald_safe defaults-file=/etc/my.txt & 手工指定的最后读取

# 多(6)的特殊说明--->如果加了defaults-file=,不会读取1~5的配置文件,只会读取6这一个!

场景:修改了/etc/my.cnf但是没有生效

实验:几个配置文件都有,然后重新启动,看server_id是多少

-- 登陆查询

show variables like 'server_id';

思考

-- cmake:
--socket=/application/mysql/tmp/mysql.sock

-- 命令行:
--socket=/tmp/mysql.sock

-- 配置文件:注意:opt的权限(mysql.mysql)
/etc/my.cnf中[mysqld]标签下:socket=/opt/mysql.sock

-- default参数:
--defaults-file=/tmp/a.txt配置文件中[mysqld]标签下:socket=/tmp/test.sock

 思考:socket文件会生成在哪?文件名叫什么?

mysqld_safe --defaults-file=/etc/a.txt --socket=/tmp/my.wzj &

# a.txt中socket的配置文件中 --socket=/opt/mysql.sock

# 解答:生成的文件名字叫做/tmp/my.wzj

优先级的顺序

# 读取顺序

# 命令行(高)  -->defaults-file(有了它,下面的就不用考虑了)  -->配置文件  -->预编译(最没有用的)

初始化配置文件功能

1)影响实例的启动--->socket文件

2)影响到客户端    --->客户端来连接,去哪找socket

#    影响:mysql、mysqldump、mysqladmin

如何配置初始化配置文件

1)配置标签分类

[client]所有客户端程序-->可以用mysql或mysqldump

[server]所有服务器程序-->可以用mysqld或mysqld_safe标签

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值