1、Mysql的启动过程 1.1、日常启停 mysql.server start -----> mysqld_safe ------>mysqld mysql.service ------->mysqld 需要依赖于 /etc/my.cnf 1.2、维护性的任务还可以用mysqld_safe & 启动 这种启动,关闭mysql的命令: mysqladmin -uroot -p123 shutdown 2、初始化配置(/etc/my.cnf) 作用: 影响数据库的启动 影响到客户端的功能 初始化配置的方法: (1)、初始化配置文件(例如/etc/my.cnf) (2)、启动命令行上进行设置(例如:mysqld_safe mysqld) (3)、预编译时设置(仅限于编译安装时设置) 初始化配置文件的书写格式: [标签] xxx=xxx [标签] xxx=xxx Mysql配置文件中的标签的归类: 服务器端标签: [mysqld] [mysqld_safe] [server]-----都写到一起, 相当于 [mysqld] + [mysqld_safe] 客户端标签: [mysql] [mysqladmin] [mysqldump] [client]----- 都写到一起, 相当于 [mysql] + [mysqladmin] + [mysqldump] 配置文件样板:5.7 [mysqld] user=mysql basedir=/软件安装的目录 datadir=/data/mysql/data #(数据存放的目录) socket=/tmp/mysql.sock server_id=6 #主从复制才用到,1-65535 port=3306 [mysql] #客户端配置 socket=/tmp/mysql.sock #必须要和服务器端中的配置一样 配置文件读取位置:如果有冲突,以最后一个为主,比如说,两处my.cnf中有一项相同。
强制使用自定义配置文件: --defaults-file mysqld_safe (mysqld) --defaults-file=/tmp/aa/aa.txt & 其他配置文件将不再读取。只能用mysqld_safe 和 mysqld 调用 ++++++++++ Mysql 连接管理 3.1 mysql 命令 提前应该将用户授权做好 tcpip: mysql -uroot -p -h10.0.0.51 -P3306 #有 -P(大P) 必须要有 -h socket: mysql -uroot -p -S /tmp/mysql.sock 同时出现,socket 和 远程,远程登录优先(TCPIP协议为主) mysql -uroot -p -S /tmp/mysql.sock
![]()
客户端工具: sqlyog navicat ++++++++++++++++++++++++++++++ Mysql 多实例: 一台机器里面启动多个数据库 多个端口,多个目录,配置文件也要单独准备 创建目录: mkdir -p /data/330{7,8,9}/data 准备配置文件: cat >/data/3307/my.cnf <<EOF [mysqld] basedir=/application/mysql datadir=/data/3307/data socket=/data/3307/mysql.sock log_error=/data/3307/mysql.log port=3307 server_id=7 log_bin=/data/3307/mysql-bin EOF cat >/data/3308/my.cnf <<EOF [mysqld] basedir=/application/mysql datadir=/data/3308/data socket=/data/3308/mysql.sock log_error=/data/3308/mysql.log port=3308 server_id=8 log_bin=/data/3308/mysql-bin EOF cat >/data/3309/my.cnf <<EOF [mysqld] basedir=/application/mysql datadir=/data/3309/data socket=/data/3309/mysql.sock log_error=/data/3309/mysql.log port=3309 server_id=9 log_bin=/data/3309/mysql-bin EOF 初始化数据: mv /etc/my.cnf /etc/my.cnf.bak mysqld --initialize-insecure --user=mysql --datadir=/data/3307/data --basedir=/appalication/mysql mysqld --initialize-insecure --user=mysql --datadir=/data/3308/data --basedir=/appalication/mysql mysqld --initialize-insecure --user=mysql --datadir=/data/3309/data --basedir=/appalication/mysql systemd 管理多实例 cd /etc/systemd/system cp mysqld.service mysqld3307.service cp mysqld.service mysqld3308.service cp mysqld.service mysqld3309.service vim mysqld3307.service 只修改一行: ExecStart=/application/mysql/bin/mysqld --defaults-file=/data/3307/my.cnf mysqld3308.service mysqld3309.service 改同样地方。 目录授权: chown -R mysql.mysql /data/* 启动Mysql 多实例 systemctl start mysqld3307 systemctl start mysqld3308 systemctl start mysqld3309
![]()
验证: mysql -S /data/3307/mysql.sock -e "select @@server_id" mysql -S /data/3308/mysql.sock -e "select @@server_id" mysql -S /data/3309/mysql.sock -e "select @@server_id"
在本地登录数据库实例: mysql -S /data/3307/mysql.sock ++++++++++++++++++ Mysql 内置的功能 -u -p -S -h -P -e < 例子:
< 恢复数据时会用到,导入数据。 mysql -uroot -p123 </root/world.sql 内置命令: help 打印帮助 \c 清除上个命令。等同于ctrl+c 结束上个命令的运行 asdfas\c \q 退出,Ctrl + d quit exit 都可以退出mysql。 \G 格式化结果 source 导入数据; 库必须存在。