ホームページ  >  記事  >  データベース  >  mysqlの実行ファイルとは何ですか

mysqlの実行ファイルとは何ですか

藏色散人
藏色散人オリジナル
2023-04-11 10:38:171669ブラウズ

mysql の実行ファイルは mysqld です。mysqld は、Mysql サーバー プログラムを表す実行可能ファイルです。このファイルを実行すると、サーバー プロセスを直接開始できます。mysqld_safe は、mysqld を間接的に呼び出す起動スクリプトです。監視プロセスも同時に開始されます。

mysqlの実行ファイルとは何ですか

このチュートリアルの動作環境: Windows 10 システム、mysql8 バージョン、Dell G3 コンピューター。

mysql の実行ファイルは何ですか?

Mysql 起動オプションと設定ファイル

Mysql 起動方法

次の起動コマンドはすべて、Linux 環境で設定された Mysql 環境変数に依存する必要があります

vi /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  &

root ユーザーは起動パラメータを追加する必要があります (mysql ではセキュリティの問題により root ユーザーが直接起動することは許可されていないため、mysql の使用を強制するには起動パラメータを追加する必要があります) root アカウントで開始します)。

mysqld --defaults-file=/etc/my.cnf --user=root  &

mysqld_safe

mysqld_safe は、mysqld を間接的に呼び出し、監視プロセスも開始する起動スクリプトです。この監視プロセスは、サーバーがハングしたときに使用されます。さらに、このスクリプトは、サーバー プログラムのエラー情報と診断情報をファイルにリダイレクトして、エラー ログを記録します。

デフォルトの設定ファイルを指定する必要はありません。コマンドは次のとおりです

mysqld_safe --defaults-file=/etc/my.cnf &

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

このパスを指定した場合 ソフトリンク

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

その後、起動コマンドは

service mysql stop/start
Mysql 起動モード オプション

Mysql サービスは起動時にいくつかの起動パラメータを指定できます。前に説明したサーバーとクライアント クライアントの接続方法には、TCP/IP、名前付きパイプ、共有メモリ、Unix ドメイン ソケット ファイルが含まれます。クライアントの起動時に次の条件が満たされる場合、クライアントはドメイン ソケット ファイルを使用してサーバーと通信します。

  • -h オプションが指定されていません。
  • ドメイン名を localhost (
  • -hlocalhost) として指定するには、-h を指定します。
  • クライアント起動パラメータは
  • --protocol=socket を指定します。
クライアントが

-h に続いて IP アドレスを指定した場合、それが 127.0.0.1 であっても、TCP/IP 接続を使用することを意味し、これはクライアント サーバー側で TCP/IP 通信の使用が禁止されている場合はどうすればよいですか?

root ユーザーは次のコマンドを使用します。非 root ユーザーは必要ありません

--user=root

mysqld --user=root --skip-networking &

クライアント操作

### 采用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)
別の例は、データベース ストレージ エンジンの指定です。Mysql のデフォルトは InnoDB です。起動オプションを通じて変更できます

### 非root用户去除--user=root选项
mysqld --user=root --default-storage-engine=MyISAM

顧客側の操作

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

创建后的数据库操作引擎变为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

Mysql启动配置文件

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

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

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

[mysqld]

[mysqld_safe]

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

[mysql]

[mysqladmin]

### 所有配置组的格式同上
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

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

  • 如果服务端采用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才能获取,另外这个文件是在登录用户的家目录!!!)。

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

推荐学习:《MySQL视频教程

以上がmysqlの実行ファイルとは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。