MySQL数据库服务器通常指的的是mysqld,而命令行mysql则是mysql客户端程序,这两个概念通常容易混淆。通常启动mysql服务器即是启动mysqld进程,mysqld启动后,可以通过mysql连接到mysql服务器。本文主要描述了mysql服务器的几种启动方式以及如何关闭mysql服务器。
--------------------------------------分割线 --------------------------------------
Ubuntu 14.04下安装MySQL
Ubuntu 14.04 LTS 安装 LNMP Nginx\PHP5 (PHP-FPM)\MySQL
Ubuntu 12.04 LTS 构建高可用分布式 MySQL 集群
Ubuntu 12.04下源代码安装MySQL5.6以及Python-MySQLdb
--------------------------------------分割线 --------------------------------------
1、直接使用mysqld启动
mysqld 即是mysql服务器,可以调用该命令直接启动mysql服务器
mysqld 从配置文件中读取[mysqld]以及[server]选项组的内容,也可以通过直接在命令行跟随参数。
mysqld服务器读取配置文件的顺序,对于有多个配置文件存在,且同一参数有多个值的情形,以最后一次读取为准。
命令行跟随参数具有最高优先级
#当前mysql服务器运行环境
[root@rhel64a ~]# cat /etc/issue
Red Hat Enterprise Linux Server release 6.4 (Santiago)
#查看mysqld启动时的缺省选项
[root@rhel64a ~]# mysqld --print-defaults
mysqld would have been started with the following arguments:
--socket=/tmp/mysql3306.sock --port=3306 --pid-file=/var/lib/mysql/my3306.pid --user=mysql --server-id=3306 --federated
[root@rhel64a ~]# ps -ef|grep mysql
root 2963 2840 0 14:10 pts/0 00:00:00 grep mysql
# Author : Leshami
# Blog :
#查看mysqld启动配置文件的优先级
[root@rhel64a ~]# mysqld --verbose --help |grep -A 1 "Default options"
Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf
#查看当前的my.cnf配置文件
[root@rhel64a ~]# grep -v ^# /etc/my.cnf|head -n 7
[mysqld]
socket = /tmp/mysql3306.sock
port = 3306
pid-file = /var/lib/mysql/my3306.pid
user = mysql
server-id=3306
federated
#清空当前mysql服务器的错误日志文件
[root@rhel64a ~]# cat /dev/null>/var/lib/mysql/rhel64a.ycdata.net.err
[root@rhel64a ~]# mysqld & #启动mysqld服务器
[1] 3480
[root@rhel64a ~]# 2014-10-25 14:20:42 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated.
Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2014-10-25 14:20:42 3480 [Note] InnoDB: Using atomics to ref count buffer pool pages
2014-10-25 14:20:42 3480 [Note] InnoDB: The InnoDB memory heap is disabled
2014-10-25 14:20:42 3480 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2014-10-25 14:20:42 3480 [Note] InnoDB: Memory barrier is not used
2014-10-25 14:20:42 3480 [Note] InnoDB: Compressed tables use zlib 1.2.3
2014-10-25 14:20:42 3480 [Note] InnoDB: Using Linux native AIO
2014-10-25 14:20:42 3480 [Note] InnoDB: Using CPU crc32 instructions
2014-10-25 14:20:42 3480 [Note] InnoDB: Initializing buffer pool, size = 128.0M
2014-10-25 14:20:42 3480 [Note] InnoDB: Completed initialization of buffer pool
2014-10-25 14:20:42 3480 [Note] InnoDB: Highest supported file format is Barracuda.
2014-10-25 14:20:42 3480 [Note] InnoDB: 128 rollback segment(s) are active.
2014-10-25 14:20:42 3480 [Note] InnoDB: Waiting for purge to start
2014-10-25 14:20:42 3480 [Note] InnoDB: 5.6.21 started; log sequence number 1626087
2014-10-25 14:20:42 3480 [Note] Server hostname (bind-address): '*'; port: 3306
2014-10-25 14:20:42 3480 [Note] IPv6 is available.
2014-10-25 14:20:42 3480 [Note] - '::' resolves to '::';
2014-10-25 14:20:42 3480 [Note] Server socket created on IP: '::'.
2014-10-25 14:20:42 3480 [Note] Event Scheduler: Loaded 0 events
2014-10-25 14:20:42 3480 [Note] mysqld: ready for connections.
Version: '5.6.21' socket: '/tmp/mysql3306.sock' port: 3306 MySQL Community Server (GPL)l
#下面可以查询到mysqld进程
[root@rhel64a ~]# ps -ef|grep mysql|grep -v grep
mysql 18240 2641 1 20:25 pts/2 00:00:00 mysqld
[root@rhel64a ~]# mysql -uroot -pxxx -P3306 --protocol=tcp
root@localhost[(none)]> show variables like 'version';
+---------------+--------+
| Variable_name | Value |
+---------------+--------+
| version | 5.6.21 |
+---------------+--------+