mysql の実行ファイルは mysqld です。mysqld は、Mysql サーバー プログラムを表す実行可能ファイルです。このファイルを実行すると、サーバー プロセスを直接開始できます。mysqld_safe は、mysqld を間接的に呼び出す起動スクリプトです。監視プロセスも同時に開始されます。
このチュートリアルの動作環境: Windows 10 システム、mysql8 バージョン、Dell G3 コンピューター。
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 は Mysql サーバー プログラムを表す実行可能ファイルです。このファイルを実行すると直接起動できます。サーバープロセス。
以下の方法で root 以外のユーザーでも起動できる場合は、起動時に読み込む設定ファイルを指定します。
mysqld --defaults-file=/etc/my.cnf &
root ユーザーは起動パラメータを追加する必要があります (mysql ではセキュリティの問題により root ユーザーが直接起動することは許可されていないため、mysql の使用を強制するには起動パラメータを追加する必要があります) root アカウントで開始します)。
mysqld --defaults-file=/etc/my.cnf --user=root &
mysqld_safe は、mysqld を間接的に呼び出し、監視プロセスも開始する起動スクリプトです。この監視プロセスは、サーバーがハングしたときに使用されます。さらに、このスクリプトは、サーバー プログラムのエラー情報と診断情報をファイルにリダイレクトして、エラー ログを記録します。
デフォルトの設定ファイルを指定する必要はありません。コマンドは次のとおりです
mysqld_safe --defaults-file=/etc/my.cnf &
mysqld_multi は複数の mysql データベース インスタンスを起動できます、ここでは説明しません。
実際には、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
オプションが指定されていません。
) として指定するには、
-h を指定します。
を指定します。
-h に続いて IP アドレスを指定した場合、それが 127.0.0.1 であっても、TCP/IP 接続を使用することを意味し、これはクライアント サーバー側で TCP/IP 通信の使用が禁止されている場合はどうすればよいですか?
--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)
### 非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启动方式选项虽然是方便,但也带来的一些问题,如果启动选项参数过多导致启动命令毫无可读性而言,启动选项配置的参数只对当前启动的服务生效,也就是如果下次重启所有的启动参数将被还原不会被记录,所以为了将这些启动参数保存,我们就需要一个配置文件默认称为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
会根据书写顺序读取,也就是说后面的配置会覆盖前面的配置
在启动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
读取文件的顺序为
这四个文件会按照顺序读取,也就是说如果在/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 サイトの他の関連記事を参照してください。