一、本地管理員用戶密碼忘記
[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 ~]#