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用户直接启动,所以需要加入启动参数强制使用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服务在启动时就可以指定一些启动参数,如之前讨论过的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 --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 -ADatabase 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中其实一直有区分长形式命令和短形式命令,但是我们在使用时并没有注意,对照如下

长形式 短形式 意义
–host -h 主机名
–user -u 用户名
–password -p(小写) 密码
–port -P(大写) 端口
–version -V 版本

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

### 长连接形式
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 服务端 [mysqld]、[server]
mysqld_safe 服务端 [mysqld]、[server]、[mysqld_safe]
mysql.server 服务端 [mysqld]、[server]、[mysql.server]
mysql 客户端 [mysql]、[client]
mysqladmin 客户端 [mysqladmin]、[client]

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

[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才能获取,另外这个文件是在登录用户的家目录!!!)。

这四个文件会按照顺序读取,也就是说如果在/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启动选项和配置文件相关推荐

  1. mysql 8服务配置文件my.ini 不生效_2、mysql的启动选项和配置文件介绍

    mysql服务端可以指定允许同时接入的客户端数量max-connections.客户端与服务器的通信方式.表的默认存储引擎default_storage_engine等等设置项,使得我们可以更加灵活地 ...

  2. mysql启动选项只读_MySQL的启动选项和系统变量该如何配置?

    MySQL的配置信息可以通过两种方式实现,一种是命令行形式,在启动MySQL服务时后边带上相关配置参数,此种方式会在MySQL重启后失效.另外一种是通过写入配置文件,如my.cnf,启动或者重启MyS ...

  3. Centos 7 上 查看MySQL当前使用的配置文件my.cnf的方法

    my.cnf是mysql启动时加载的配置文件,一般会放在mysql的安装目录中,用户也可以放在其他目录加载.总的来说,my.cnf类似与window中my.ini 使用locate my.cnf命令可 ...

  4. MySQL之启动选项

    启动选项简介 当我们使用mysql客户端可执行文件连接mysql服务器时,需要指定IP地址.用户名及密码等信息,这些信息就是mysql客户端程序启动时的选项,通过这些选项可以连接到具体的mysql服务 ...

  5. mysql.server 文件是什么_mysql的启动脚本mysql.server及示例配置文件

    以MySQL-server-4.0.14-0.i3862881064151.rpm为例,放在/data目录下 cd /data rpm -ivh MySQL-server-4.0.14-0.i386. ...

  6. mysql客户库_你应该知道的10个MySQL客户启动选项

    大部分服务器管理员知道MySQL数据库管理系统(RDBMS)是高度灵活的软件块,带有范围广阔的启动选项,可以用来修改相关行为.然而,大部分人却不清楚,标准MySQL客户端带有同等大量的启动选项,其中一 ...

  7. 命令 启动顺序_笔记一: 启动选项与系统变量

    启动选项(startup options) 定义: MySQL有很多设置项,如存储引擎,客户端连接数量,缓存大小等,这些设置项在配置文件中都有默认值,在启动MySQL时可以在启动命令后面加一些参数来修 ...

  8. linux mysql启动_MySQL 安装(二)

    MySQL 安装 所有平台的Mysql下载地址为:MySQL 下载 . 挑选你需要的 MySQL Community Server 版本及对应的平台. Linux/UNIX上安装MySQL Linux ...

  9. mysql程序选项有两种通用形式:长选项和短选项_MySQL程序概述

    4.3.2. 使用选项文件 MySQL程序可以从选项文件(有时也称为配置文件)读取启动选项.选项文件提供了一种很方便的方式来指定常用的选项,因此不需要每次运行程序时从命令行输入. 下面的程序支持选项文 ...

最新文章

  1. 程序员:我受够了!不想再在小厂里干Java了!
  2. 图像处理之基础---周末戏说卷积
  3. 程序不能使用中文名_这几款车没有中文名?那买车时应该怎么叫?
  4. oracle 之 基础操作
  5. python测验9答案_【Python基础测试】你知道这些答案吗?
  6. java反编译之 基础篇(class未加密未混淆)
  7. win7禁用powershell_简述Windows 7中的Windows PowerShell功能
  8. 浅谈ViewState原理
  9. Linux系统安装gcc/g++/rpcbind服务
  10. 酒仙网IPO被终止:曾拟募资10亿 红杉与东方富海是股东
  11. 四川铺管家教育:拼多多0.99有什么注意的
  12. Java开发必须会的技能!java页面导出数据到excel
  13. HyperLynx(十二)BoardSim和PCB板级仿真分析(三)
  14. 已搭建独立博客,请移步下面网址
  15. 高考数学辅导高考数学复习各个阶段备考指导
  16. 22考研清华905机械设计基础上岸经验分享
  17. PyTorch深度学习实践(b站刘二大人)P6讲 逻辑斯蒂回归 Logistic Regression
  18. 物流赛道加速内卷,安迅上市能否博得更大席位?
  19. 易语言5.7完美版 全套视频学习教程
  20. Enhancing Quality for HEVC Compressed Videos

热门文章

  1. 基于STM32单片机的篮球计时记分器仿真设计
  2. hbase学习教程(一):hbase的概述和hbase架构及基本组件
  3. 关于DCDC选型OVP的经验
  4. Disentangled Graph Collaborative Filtering
  5. java 判断当前月天数
  6. 登录Linux操作系统并执行第一个C语言代码
  7. 【FinE】统计与计量指标计算(Matlab)
  8. Python基于basemap画论文级别的多子图空间场
  9. 计算机登陆后如何防止自动注销,登录win10系统后自动注销的解决方法
  10. freemark导出word,图片显示问题