刚接触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的理解相关推荐

  1. 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 ...

  2. 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 ...

  3. mysql socket错误_解决Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’错误...

    晚上清理mysql日志,强制重启了下mysql,然后mysql就登陆不上了... 以下方法来自网络,可以使用,已试. 刚安装完mysql,进行运行测试,报Can't connect to local ...

  4. mysql socket错误处理_解决Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’错误...

    晚上清理mysql日志,强制重启了下mysql,然后mysql就登陆不上了... 以下方法来自网络,可以使用,已试. 刚安装完mysql,进行运行测试,报Can't connect to local ...

  5. 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)的解决方法: ...

  6. 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 ...

  7. 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 ...

  8. 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 ...

  9. 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 ...

最新文章

  1. Linux/Unix mii-tool command
  2. [转][自勉]程序员困境:底层编码能力正逐步丧失
  3. 类和对象—对象特性—构造函数调用规则
  4. Intelij 添加php注释
  5. zookeeper伪集群(在一台机器上集群)
  6. 使用Sqlmap对dvwa进行sql注入测试(初级阶段)
  7. oracle rac维护命令,2015年oracle rac日常基本维护命令.doc
  8. python如何处理表格_如何处理表格/列表/标题等?
  9. 详解Python变量作用域
  10. 没有lrzsz,怎么传文件到服务器?
  11. caffe学习日记--lesson4:windows下caffe DEMO (mnist and cifar10)
  12. 讲解对于Java中如何计算日期之间的天数知识
  13. Cocos2d-x建工程时避免copy文件夹和库(子龙山人)
  14. Execl锁定单元格
  15. git 将多条提交合并为一条
  16. 多线程测速软件带宽叠加设置
  17. 微信公众号数据分析报告
  18. 2019双十一淘宝天猫刷喵币 不用ROOT,执行javascript脚本
  19. 内存换CPU CPU换内存例子
  20. Java十六:Scanner,配合hasNext()/hasNextInt()/hasNextFloat()....实现人机互动

热门文章

  1. 石家庄阿福卡4G问题
  2. 数字化转型 财务部首当其冲
  3. 从浅到深,数据分析人的学习书籍!
  4. Oracle数据库基本知识与SQL操作(1)
  5. c语言孩子兄弟法存储一棵树,树的孩子兄弟表示法
  6. 一图了解交通拥堵治理措施
  7. 方正圆明服务器装系统的引导盘,方正一键u盘装原版 win7系统教程
  8. Cmake 命令语句(一)
  9. 互联网结合产业,并不是为了继续建筑互联网与实体产业之间的高墙
  10. 112123---123456