一、本地管理员用户密码忘记
[root@db01 ~]# mysqld_safe --skip-grant-tables --skip-networking & mysql> flush privileges; mysql> alter user root@'localhost' identified by '123456'; [root@db01 ~]# pkill mysqld [root@db01 ~]# systemctl start mysqld
二、自带客户端命令
2.1、常用参数
-u 用户 -p 密码 -h IP -P 端口 -S socket文件 -e 免交互执行命令 < 导入SQL脚本 [root@db01 ~]# mysql -uroot -p -h 192.168.1.211 -P3306 Enter password: mysql> select @@socket; +-----------------+ | @@socket | +-----------------+ | /tmp/mysql.sock | [root@db01 ~]# mysql -uroot -p -S /tmp/mysql.sock Enter password: [root@db01 ~]# mysql -uroot -p -e "select user,host from mysql.user;" Enter password: +---------------+--------------+ | user | host --- | +---------------+--------------+ | abc | 192.168.1.% | | app | 192.168.1.% | | root | 192.168.1.% | | mysql.session | localhost | | mysql.sys | localhost | | root | localhost | +---------------+--------------+ [root@db01 ~]# [root@db01 ~]# mysql -uroot -p <world.sql Enter password: [root@db01 ~]#
三、多种启动方式介绍
提示:
以上多种方式,都可以单独启动MySQL服务
mysqld_safe和mysqld一般是在临时维护时使用。
另外,从Centos 7系统开始,支持systemd直接调用mysqld的方式进行启动数据库
3.1、mysql的启动过程
日常启停
mysql.server start ----> mysqld_safe ----> mysqld mysql.service ----> mysqld 需要依赖于/etc/my.cnf
维护性的任务
mysqld_safe --skip-grant-tables --skip-networking &
我们一般会将我们需要的参数临时加到命令行。
也会读取/etc/my.cnf的内容,但是如果冲突,命令行优先级最高
Mysql_safe启动后,关闭比较麻烦,命令是mysqladmin -uroot -p123 shutdown
四、初始化配置
4.1、作用
控制MySQL的启动
影响到客户端的连接
4.2、初始化配置的方法
1、初始化配置文件(例如:/etc/my.cnf) 2、启动命令行上进行设置(例如:mysqld_safe mysqld) 3、预编译时设置(仅限于编译安装时设置)
4.3、初始配置文件
初始化配置文件的默认读取路径
[root@db01 ~]# mysqld --help --verbose |grep my.cnf /etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf 注: 默认情况下,MySQL启动时,会依次读取以上配置文件,如果有重复选项,会以最后一个文件设置的为准。 但是,如果启动时加入了--defaults-file=xxxx时,以上的所有文件都不会读取.
配置文件的书写方式:
[标签] 配置项=xxxx 标签类型:服务端、客户端 服务器端标签: [mysqld] [mysqld_safe] [server] 客户端标签: [mysql] [mysqldump] [client]
配置文件的示例展示:
[root@db01 ~]# cat /etc/my.cnf
#服务器端配置
[mysqld]
#用户
user=mysqld
#软件安装目录
basedir=/application/mysqld
#数据路径
datadir=/data/mysql/data
#socket文件位置
socket=/tmp/mysql.socket
#服务器ID号
server_id=6
#端口号
port=3306
#日志文件
log_error=/data/mysql/mysql.log
[mysql]
#socket文件位置
socket=/tmp/mysql.socket
prompt=Master [\\d]>
[root@node2 ~]# cat /etc/systemd/system/mysqld.service [Unit] Description=MySQL Server Documentation=man:mysqld(8) Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html After=network.target After=syslog.target [Install] WantedBy=multi-user.target [Service] User=mysql Group=mysql ExecStart=/application/mysql/bin/mysqld --defaults-file=/etc/my.cnf LimitNOFILE = 5000 [root@node2 ~]#