Mysql启动的4种方法
- mysqld
- mysqld是MySql服务器进程;
- mysqld启动时读取配置文件中的[mysqld]和[server]节点
- 我们可以手动的调用mysqld(查看参数:mysqld –verbose –help),但是我们一般只在调试的时候才这么做,如果手动启动的话,错误消息会打印到终端屏幕上而不是错误日志文件中;
- 默认读取配置文件的顺序是:
- /etc/my.cnf;
- /etc/mysql/my.cnf;
- /usr/local/mysql/etc/my.cnf;
- ~/.my.cnf;
- 依次读取后面配置文件中的的项会覆盖掉前面;
- 启动方式:$MYSQL_HOME/libexec/mysqld –defaults-file=./my.cnf –user=mysql;
- 连接方式:
- mysql –defualts-file=./my.cnf
- mysql -S /tmp/mysql.sock
- mysqld_safe
- mysqld_safe读取配置文件的[mysqld],[server]和[mysqld_safe]节点,为了向后兼容,也会读取[safe_mysqld]节点,尽管你应该重命名[mysqld_safe]节点在MySql5.1的安装过程中;
- mysqld_safe是一个可以调用mysqld进程的shell脚本,它可以设置错误日志,然后调用并监控mysqld进程,如果mysqld进程异常终止(kill -9 pid)的话,则mysqld_safe可以重新启动它;
- 启动方式:$MYSQL_HOME/lib/mysqld_safe –defaults-file=./my.cnf –user=mysql &;
- 连接方式:
- mysql –defualts-file=./my.cnf
- mysql -S /tmp/mysql.sock
- mysql.server
- MySql的分发版本在Unix上包含了一个叫mysql.server的脚本,它可以用于像Linux和Solaris的OS,以至于能够使用System V-style的方式运行目录来启动和关闭系统服务.它同样可以被用于Mac OS X系统上MySql的开机项;
- 存放的目录有:
- $MYSQL_HOME/share/mysql/mysql.server
- mysql-VERSION/support-files/mysql.server
- mysql.server读取配置文件的[mysql.server]和[mysqld]节点,为了向后兼容,它也读取[mysql_server]节点,尽管你应该重命名此节点在使用MySql5.1时;
- 它会调用mysqld_safe进程;
- 启动方式:
- cd $MYSQL_HOME/share/mysql/mysql.server start(stop/restart/reload/force-reload/status)
- cp $MYSQL_HOME/share/mysql/mysql.server /etc/rc.d/init.d/mysql;chkconfig –add mysql;service mysql start;
- 连接方式:
- mysql –defualts-file=./my.cnf
- mysql -S /tmp/mysql.sock
- mysqld_multi
- mysqld_multi是用来管理多个在不同的Unix socket文件和TCP/IP端口监听的mysqld进程的,它可以启动,停止和报告它们当前的状态,MySql Instance Manager是一个具有选择意义的多实例管理服务;
- 配置方法:
- 创建多实例的数据文件(有几个实例创建几个数据文件目录):>mkdir $MYSQL_HOME/data2;
- 修改数据文件目录的访问权限:>chown -R mysql:mysql data2;
- 分别初始化各个实例:>mysql_install_db –basedir=$MYSQL_HOME –datadir=$MYSQL_HOME/data2 –user=mysql;(初始化时指定basedir和datadir而不是从配置文件中读取)
- 编辑配置文件:添加[mysqld_multi]节点和多个[mysqldxxxx]节点;
- 启动实例:>mysqld_multi –defaults-file=./my.cnf start 3306;
- 连接方式:
- mysql -u root -P 3306 –protocol=tcp;
- mysql -S /tmp/mysql3306.sock
- 添加有关闭服务权限的用户:>grant shutdown on *.* to “shutdown_user”@”localhost” identified by “pwd” with grant option;(查看授权语句:>show grants for root@localhost;)
- 停止服务:>mysqld_multi –defualts-file=./my.cnf stop 3306;
- 日志文件存放在:$MYSQL_HOME/share/mysqld_multi.log文件中(mysql5.5中$MYSQL_HOME/data/mysqld_multi.log文件中);
关闭mysql数据库服务器:>mysqladmin shutdown;
查看mysql服务器是否否启动:>mysqladmin ping;
连接MySql
- 交互协议
- TCP/IP:支持本地连接和远程连接,支持所有的操作系统,除非指定–skip-networking选项;
- Unix Socket File:仅支持本地连接,仅支持Unix系统;
- Named Pipe:仅支持本地连接,仅支持Windows系统,需要使用-nt的版本(mysql-nt or mysql-max-nt),此方式默认禁止,如果要开启Named Pipe方式连接必须启动-nt版本的服务器并加上–enable-named-pipe选项;
- Shared Memory:仅支持本地连接,仅支持Windows系统,默认禁止,如果要开启需要添加–share-memory选项;
- 客户端工具
- mysql:是一个向服务器发送SQL语句的一般用途的客户端工具,也包含了一些管理的功能;
- mysqladmin:是一个帮助管理服务器的管理命令行客户端;
- mysqlimport:提供一个LOAD DATA INFILE语句的接口,帮助导入数据;
- mysqldump:是一个倾倒数据库和表结构及内容的客户端,主要用于备份和拷贝数据库到其它的机器;
./my.cnf文件:
[mysqld_multi]
mysqld = /usr/local/mysql/bin/mysqld_safe — 启动服务的进程
mysqladmin = /usr/local/mysql/bin/mysqladmin — 关闭服务的进程
user = shutdown_user — 有关闭服务器权限的用户
password = pwd — 用户密码
[mysqld3306]
port = 3306 — 监听端口号
socket = /tmp/mysql3306.sock — socket文件
pid-file = /tmp/mysql3306.pid — pid文件
basedir = /usr/local/mysql — 实例基目录
datadir = /usr/local/mysql/data — 实例数据文件目录
…… — 其它服务器参数