Maison > base de données > tutoriel mysql > le corps du texte

Quel est le fichier en cours d'exécution de MySQL

藏色散人
Libérer: 2023-04-11 10:39:06
original
1672 Les gens l'ont consulté

Le fichier en cours d'exécution de mysql est mysqld ; mysqld est un fichier exécutable, représentant le programme serveur Mysql. L'exécution de ce fichier peut démarrer directement un processus serveur ; et mysqld_safe est un script de démarrage, qui appellera indirectement mysqld et le démarrera également accidentellement. Un processus de surveillance.

Quel est le fichier en cours d'exécution de MySQL

L'environnement d'exploitation de ce tutoriel : système Windows 10, version mysql8, ordinateur Dell G3.

Quel est le fichier en cours d'exécution de MySQL ?

Options de démarrage Mysql et fichiers de configuration

Méthode de démarrage Mysql

Les commandes de démarrage suivantes doivent toutes s'appuyer sur les variables d'environnement Mysql configurées dans l'environnement Linux

vi /etc/profile
Ajoutez le chemin d'installation de Mysql à la fin du fichier (dans la démonstration, mysql est configuré sous /usr/local/mysql-5.7.26, ce chemin est à déterminer en fonction de votre propre environnement)
export PATH=/usr/local/mysql -5.7.26/bin/:$PATH
Actualisez le fichier de configuration après la mise à jour du fichier, sinon il ne prendra pas effet immédiatement
source /etc/ profilevi /etc/profile
在文件末尾加上Mysql的安装路径(演示中mysql配置在/usr/local/mysql-5.7.26下,这个路径需要根据自己的环境而定)
export PATH=/usr/local/mysql-5.7.26/bin/:$PATH
更新文件后刷新配置文件,不然不能立即生效
source /etc/profile

mysqld

mysqld是一个可执行文件,就代表着Mysql服务器程序,执行这个文件可以直接启动一个服务器进程。

如果非root用户可以用如下方式启动,指定启动时读取的配置文件。

mysqld --defaults-file=/etc/my.cnf  &
Copier après la connexion

root用户需要加入启动参数(mysql因为安全问题不让root用户直接启动,所以需要加入启动参数强制使用root账号启动)。

mysqld --defaults-file=/etc/my.cnf --user=root  &
Copier après la connexion

mysqld_safe

mysqld_safe是一个启动脚本,它会间接调用mysqld,而且还会顺带启动一个监控进程,这个监控进程在服务器挂了的时候,可以自动重启服务,另外这个脚本会将服务器程序的错误信息以及诊断信息重定向到某个文件中记录错误日志。

可以不指定默认配置文件,命令如下

mysqld_safe --defaults-file=/etc/my.cnf &
Copier après la connexion

mysqld_multi

mysqld_multi可以启动多个mysql数据库实例,这里不做探讨。

mysql.server

在mysq的安装目录其实还有一个文件夹support-files,具体目录是/usr/local/mysql-5.7.26/support-files,里面的mysql.server也是一个启动脚本,这个脚本会间接调用mysqld_safe脚本,执行命令如下

### 路径依照自己的mysql安装路径来
cd /usr/local/mysql-5.7.26/support-files
./mysql.server start|stop
Copier après la connexion

如果给这个路径指定了软连接

ln -s /usr/local/mysql-5.7.26/support-files/mysql.server /etc/init.d/mysql

那么启动命令可以简化为

service mysql stop/start
Copier après la connexion

Mysql启动方式选项

Mysql服务在启动时就可以指定一些启动参数,如之前讨论过的Mysql服务端和客户端的连接方式有TCP/IP、命名管道和共享内存、Unix域套接字文件,如果客户端启动时满足如下几种情况,就是和服务端采用域套接字文件通信。

  • 没有指定-h选项。
  • 指定-h指定了域名为localhost也就是-hlocalhost
  • 客户端启动参数指定了--protocol=socket

如果客户端指定-h后面接的是IP地址,就算是127.0.0.1那也就是采用TCP/IP连接,那么这都是客户端去操作的,如果是服务端禁止采用TCP/IP通信应该如何去做呢?

root用户采用如下命令,非root用户不需要--user=root

mysqld

mysqld est un fichier exécutable, qui représente le programme serveur Mysql. L'exécution de ce fichier peut démarrer directement un processus serveur.

Si un utilisateur non root peut le démarrer de la manière suivante, précisez le fichier de configuration à lire au démarrage.

mysqld --user=root --skip-networking &
Copier après la connexion

L'utilisateur root doit ajouter des paramètres de démarrage (mysql ne permet pas aux utilisateurs root de démarrer directement en raison de problèmes de sécurité, il doit donc ajouter des paramètres de démarrage pour forcer le démarrage avec le compte root ).

### 采用unix域套接字文件通信 正常
[root@test ~]# mysql -uroot -p

[root@test ~]# mysql -hlocalhsot -uroot -p

### 采用TCP/IP连接,直接拒绝
[root@test ~]# mysql -h127.0.0.1 -uroot -p
mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 2003 (HY000): Can't connect to MySQL server on '127.0.0.1' (111)
Copier après la connexion

mysqld_safe

mysqld_safe est un script de démarrage qui appellera indirectement mysqld et lancera également un processus de surveillance. Ce processus de surveillance se bloque sur le serveur. le service peut être automatiquement redémarré. De plus, ce script redirigera les informations d'erreur et les informations de diagnostic du programme serveur vers un fichier pour enregistrer le journal des erreurs.

Vous ne pouvez pas spécifier le fichier de configuration par défaut, la commande est la suivante

### 非root用户去除--user=root选项
mysqld --user=root --default-storage-engine=MyISAM
Copier après la connexion

mysqld_multi

mysqld_multi peut démarrer plusieurs instances de base de données MySQL ne seront pas abordées ici.

mysql.server

Il y a en fait un dossier

support-files

dans le répertoire d'installation de mysq. Le répertoire spécifique est /usr/local/. mysql -5.7.26/support-files, le mysql.server à l'intérieur est également un script de démarrage. Ce script appellera indirectement le script mysqld_safe. La commande d'exécution est la suivante

mysql> use test;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> CREATE TABLE test(
    ->    id INT
    -> );
Query OK, 0 rows affected (0.00 sec)

mysql> show create table test;
+-------+----------------------------------------------------------------------------------------+
| Table | Create Table                                                                           |
+-------+----------------------------------------------------------------------------------------+
| test  | CREATE TABLE `test` (
  `id` int(11) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 |
+-------+----------------------------------------------------------------------------------------+
Copier après la connexion

Si ce chemin spécifie une connexion logicielle

ln -s /usr/local/mysql-5.7.26/support-files/mysql.server /etc/init .d/mysql

Ensuite, la commande de démarrage peut être simplifiée en 🎜🎜

### 长连接形式
mysql --host 127.0.0.1  --user root --port 3306 --password
 
### 短连接形式
mysql -h127.0.0.1 -uroot -P3306 -p
Copier après la connexion
Copier après la connexion
🎜🎜Options du mode de démarrage MySQL🎜

Le service MySQL peut spécifier un démarrage au démarrage. Les paramètres, tels que les méthodes de connexion au serveur et au client Mysql évoquées précédemment, incluent TCP/IP, les canaux nommés et la mémoire partagée, ainsi que les fichiers de socket de domaine Unix. Si les conditions suivantes sont remplies au démarrage du client, il utilisera. le domaine avec le serveur. Communication de fichier Socket. 🎜

  • Aucune option -h n'a été spécifiée.
  • Spécifiez -h pour spécifier le nom de domaine en tant que localhost, qui est -hlocalhost.
  • Le paramètre de démarrage du client spécifie --protocol=socket.

Si le client spécifie -h suivi de l'adresse IP, même si elle est 127.0.0.1, cela est Si une connexion TCP/IP est utilisée, alors tout est géré par le client. Que faut-il faire si le serveur interdit l'utilisation de la communication TCP/IP ? 🎜

Les utilisateurs root utilisent les commandes suivantes, les utilisateurs non root n'ont pas besoin de --user=root🎜🎜

#### 服务端启动配置
[server]
### 格式一:配置项=具体值
port=3306
### 格式二:配置项(没有值的情况,配置项为禁止客户端采用TCP/IP连接)
skip-networking

[mysqld]

[mysqld_safe]

#### 客户端启动配置
[client]

[mysql]

[mysqladmin]

### 所有配置组的格式同上
Copier après la connexion
Copier après la connexion
🎜🎜🎜Opération client🎜🎜🎜
[mysqld]
port = 3306
###.....省略其它配置
[server]
port=3333
[mysqld_safe]
port=5555
Copier après la connexion
Copier après la connexion
🎜 🎜à nouveau Si vous spécifiez un moteur de stockage de base de données, la valeur par défaut est InnoDB dans Mysql Nous pouvons le modifier via les options de démarrage🎜🎜
#### --defaults-file后面接任意路径文件,非root用户不需要--user=root
mysqld --defaults-file=/usr/local/mysql/etc/my.cnf.copy --user=root
Copier après la connexion
Copier après la connexion
🎜🎜🎜Opération client🎜🎜🎜rrreee🎜.

创建后的数据库操作引擎变为MyISAM,配置生效。

综上Mysql如果存在多个启动指令可以采用**--启动选项1=值1 --启动选项2=值2 ... --启动选项n=值n**,配置修改启动项。

Mysql启动指令众多,其它指令可以通过命令**mysqld --verbose --help**查看。

选项的长形式和短形式

在myql中其实一直有区分长形式命令和短形式命令,但是我们在使用时并没有注意;

需要注意的是长连接前面是两个横杠--,短连接只有一个-,另外长连接指令和值之前需要有空格,短连接可以紧挨着不需要空格。

### 长连接形式
mysql --host 127.0.0.1  --user root --port 3306 --password
 
### 短连接形式
mysql -h127.0.0.1 -uroot -P3306 -p
Copier après la connexion
Copier après la connexion

Mysql启动配置文件

采用Mysql启动方式选项虽然是方便,但也带来的一些问题,如果启动选项参数过多导致启动命令毫无可读性而言,启动选项配置的参数只对当前启动的服务生效,也就是如果下次重启所有的启动参数将被还原不会被记录,所以为了将这些启动参数保存,我们就需要一个配置文件默认称为my.cnf。

my.cnf配置文件按照启动的是客户端程序还是服务端程序将配置分为了多个组,如下所示

#### 服务端启动配置
[server]
### 格式一:配置项=具体值
port=3306
### 格式二:配置项(没有值的情况,配置项为禁止客户端采用TCP/IP连接)
skip-networking

[mysqld]

[mysqld_safe]

#### 客户端启动配置
[client]

[mysql]

[mysqladmin]

### 所有配置组的格式同上
Copier après la connexion
Copier après la connexion
mysqladmin:是一个执行管理操作的客户端程序,它可以检查服务器的配置和当前服务的状态,创建和删除数据库等。
[root@test ~]# mysqladmin -uroot -p processlist
Enter password:
+----+------+-----------+------+---------+------+----------+------------------+
| Id | User | Host      | db   | Command | Time | State    | Info             |
+----+------+-----------+------+---------+------+----------+------------------+
| 33 | root | localhost | test | Sleep   | 5    |          |                  |
| 35 | root | localhost |      | Query   | 0    | starting | show processlist |
+----+------+-----------+------+---------+------+----------+------------------+
[root@test ~]# mysqladmin -uroot -p status
Enter password:
Uptime: 13335  Threads: 2  Questions: 66  Slow queries: 0  Opens: 121  Flush tables: 3  Open tables: 5  Queries per second avg: 0.004
### 打印系统变量
[root@test ~]# mysqladmin -uroot -p variable

服务端和客户端不同命令启动会读取不同的配置组;

如果多个配置组存在相同的配置如下所示

[mysqld]
port = 3306
###.....省略其它配置
[server]
port=3333
[mysqld_safe]
port=5555
Copier après la connexion
Copier après la connexion

会根据书写顺序读取,也就是说后面的配置会覆盖前面的配置

  • 如果服务端采用mysqld启动服务端那么port的最终结果为port=3333(只会读取[mysqld]和[server]配置组)
  • 如果服务端采用mysqld_safe启动服务端那么port的最终结果为port=5555(只会读取[mysqld],[mysqld_safe]和[server]配置组)

My.cnf文件读取优先级

在启动Mysql服务时如果没有指定配置文件的具体路径,那么Mysql服务会到如下几个目录搜索,可以通过命令mysql --help查看,部分说明如下

Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf

读取文件的顺序为

  1. /etc/my.cnf
  2. /etc/mysql/my.cnf
  3. /usr/local/mysql/etc/my.cnf
  4. ~/.my.cnf(注意:这里的文件名为.my.cnf和其它路径是有区别的,并且文件名前面有一个点那么Linux服务器会将这个文件隐藏,也就是使用ll命令查询不到此文件,只有使用ll -a才能获取,另外这个文件是在登录用户的家目录!!!)。

Quel est le fichier en cours dexécution de MySQL

这四个文件会按照顺序读取,也就是说如果在/etc/my.cnf文件下配置了port=3006,在~/.my.cnf下面配置了port=3307那么最终读取的结果是port为3307。

当然这是Mysql读取默认配置的情况,我们可以自己指定配置文件路径,如下所示

#### --defaults-file后面接任意路径文件,非root用户不需要--user=root
mysqld --defaults-file=/usr/local/mysql/etc/my.cnf.copy --user=root
Copier après la connexion
Copier après la connexion

推荐学习:《MySQL视频教程

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!