mysqld,mysqld_safe,mysql.server,mysqladmin,mysql,service mysql的理解
刚接触mysql,很容易被mysqld,mysqld_safe,mysql.server,mysqladmin,mysql,service mysql弄晕
他们是命令、进程、服务、程序、脚本
最近学习了一下,说说自己的理解
1 mysql命令
mysql是客户端命令,用于连接mysql数据库
只要安装完mysql就会有的命令
比如
mysql -uroot -poracle
2 mysqld
mysqld是mysql服务器进程,也是管理mysql服务端的命令。
进程:
[root@lzl ~]# ps -ef|grep 3306
mysql 8626 1 0 01:12 ? 00:00:21 /usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql --datadir=/data/mysql --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/data/mysql/mysql.log --pid-file=/data/mysql/mysqld.pid --socket=/tmp/mysql.sock --port=3306
命令:
[root@lzl ~]# which mysqld
/usr/local/mysql/bin/mysqld
mysqld命令可以用于初始化(--initialize)或者启动mysql服务
mysqld shutdown -P$port -h$host可以关闭数据库
一般mysql服务((mysql服务一般指的实体就是mysqld的进程本身,mysqld向外提供mysql服务)启动后,就包含2个进程:mysqld和mysqld_safe。
mysqld是mysql服务器进程,也就是mysql实例本身,如果mysqld进程不在了,就可以看成mysql实例挂了
mysqld_safe相当于是mysqld外面的安全管理进程。一个mysql实例可以没有mysqld_safe进程但是至少有一个mysqld进程
用service启动一般会启动mysqld和mysqld_safe两个进程
3 mysqld_safe
mysqld_safe是mysqld_safe进程,也是mysqld_safe的命令。
mysqld_safe命令可以通过mysqld_safe进程用来启动mysqld。mysqld_safe有许多安全特性,比如当出现错误时重启服务器并向错误日志文件写入运行时间信息,mysqld和mysqld_safe参数相似(但是仍有部分不同),mysqld_safe指定的参数会传递给mysqld。启动mysql实例时建议使用mysqld_safe命令去启动,当mysqld挂掉后mysqld_safe会自动把他拉起来
例如启动mysqld_safe,同时也拉起了mysqld。在杀进程的时候最好先杀mysqld_safe,再杀mysqld,不然mysqld_safe会把mysqld拉起来
通过mysqld_safe启动mysqld_safe和mysqld:
[root@lzl ~]# mysqld_safe start --defaults-file=/etc/my.cnf &
[1] 5944
[root@lzl ~]# 2020-07-28T06:22:40.324571Z mysqld_safe Logging to '/data/mysql/mysql.log'.
2020-07-28T06:22:40.350801Z mysqld_safe Starting mysqld daemon with databases from /data/mysql --启动了mysqld
2020-07-28T06:22:42.426844Z mysqld_safe mysqld from pid file /data/mysql/mysqld.pid ended -只要出现了/xxx/xxx/.pid ended 就表示没有启动成功,它退出了
mysqld_safe start 虽然可以拉起mysqld
但是mysqld_safe shutdown只能关闭mysqld_safe自己
4 mysqld_multi
mysqld_multi可以管理多个mysql的服务,管理多个mysql实例时比较有用,目前我的接触的环境还没有使用该功能。个人认为没有各自为战的mysqld灵活,mysqld启动时指定各自的my.cnf,也可以多个服务同时存在。云服务调用时也更方便灵活一些,至少肯定不会影响到其他mysql服务
5 mysql.server与service mysql start
mysql.server 是mysql启动脚本,一般会拷贝到/etc/init.d/文件夹下,拷贝成/etc/init.d/mysql后可以通过service mysql start|stop 来启动或者关闭mysqld和mysqld_safe服务,很方便
cp -r /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
如果使用service start mysql启动mysql实例的话,一切都是默认的,他会去读/etc/my.cnf配置去启动mysql实例。
但是当我仅想启动3307端口的实例不想启动3306时,启动脚本就没有那么好用
mysql.server启动脚本的特长就是方便,缺点是不够灵活
6 mysqladmin
mysqladmin是一个执行管理操作的客户程序。可以用它来检查服务器的配置和当前的状态,创建并删除数据库等等
比如查看实例状态
[root@lzl ~]# mysqladmin proc stat -uroot -poracle (mysqladmin proc stat相当于mysqladmin status和mysqladmin processlist的合体)
mysqladmin: [Warning] Using a password on the command line interface can be insecure.
+----+------+-----------+----+---------+------+----------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+------+-----------+----+---------+------+----------+------------------+
| 17 | root | localhost | | Query | 0 | starting | show processlist |
+----+------+-----------+----+---------+------+----------+------------------+
Uptime: 321960 Threads: 1 Questions: 16 Slow queries: 0 Opens: 106 Flush tables: 2 Open tables: 1 Queries per second avg: 0.000
有个比较有意思的命令shutdown(没有startup)
[root@lzl mysql]# mysqladmin shutdown -P3306 -uroot -poracle
mysqladmin: [Warning] Using a password on the command line interface can be insecure.
2020-07-28T07:14:13.481049Z mysqld_safe mysqld from pid file /data/mysql/mysqld.pid ended
[1]+ Done mysqld_safe --defaults-file=/etc/my.cnf (wd: ~)
(wd now: /data/mysql)
确实可以停实例,启动实例还是用mysqld_safe比较好
mysqld,mysqld_safe,mysql.server,mysqladmin,mysql,service mysql的理解相关推荐
- ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var mysql 启动不了(转载)...
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var mysql 启动不了 ps -A | grep ...
- MySQL Can‘t connect to local MySQL server through socket ‘/tmp/mysql.sock‘ (111)一例
一.问题描述 今天突然碰到一个mysql数据库重启后登陆不上的问题: [16:37:02] [root@hp2 ~]# mysql -uroot -p [16:37:04] Enter passwor ...
- mysql socket错误_解决Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’错误...
晚上清理mysql日志,强制重启了下mysql,然后mysql就登陆不上了... 以下方法来自网络,可以使用,已试. 刚安装完mysql,进行运行测试,报Can't connect to local ...
- mysql socket错误处理_解决Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’错误...
晚上清理mysql日志,强制重启了下mysql,然后mysql就登陆不上了... 以下方法来自网络,可以使用,已试. 刚安装完mysql,进行运行测试,报Can't connect to local ...
- Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
关于ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)的解决方法: ...
- Mac端解决(含修改8.0.13版的密码):Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)...
1. 安装mysql但是从来没启动过,今天一启动就报错: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2 ...
- mysql 启动报错Can't connect to local MySQL server through socket '/data/mysql/mysql/mysql.sock'(111)...
1:首先mysql本地连接报错: Can't connect to local MySQL server through socket '/data/mysql/mysql/mysql.sock'(1 ...
- Can 't connect to local MySQL server through socket '/tmp/mysql.sock '(2)
安装了mysql, 使用命令mysql -u root -p 弹出Can 't connect to local MySQL server through socket '/tmp/mysql.soc ...
- Can‘t connect to local MySQL server through socket ‘/home/mysql/mysql-5.6.33/mysql.sock
登录MySQL的时候出现这个问题 原因是在 tmp目录下没有mysql.sock这个文件 我们需要创建一个软连接到该目录下 [root@test /]# mysql -u root -p Enter ...
最新文章
- Linux/Unix mii-tool command
- [转][自勉]程序员困境:底层编码能力正逐步丧失
- 类和对象—对象特性—构造函数调用规则
- Intelij 添加php注释
- zookeeper伪集群(在一台机器上集群)
- 使用Sqlmap对dvwa进行sql注入测试(初级阶段)
- oracle rac维护命令,2015年oracle rac日常基本维护命令.doc
- python如何处理表格_如何处理表格/列表/标题等?
- 详解Python变量作用域
- 没有lrzsz,怎么传文件到服务器?
- caffe学习日记--lesson4:windows下caffe DEMO (mnist and cifar10)
- 讲解对于Java中如何计算日期之间的天数知识
- Cocos2d-x建工程时避免copy文件夹和库(子龙山人)
- Execl锁定单元格
- git 将多条提交合并为一条
- 多线程测速软件带宽叠加设置
- 微信公众号数据分析报告
- 2019双十一淘宝天猫刷喵币 不用ROOT,执行javascript脚本
- 内存换CPU CPU换内存例子
- Java十六:Scanner,配合hasNext()/hasNextInt()/hasNextFloat()....实现人机互动