mysqladmin 的使用
1、修改密码,以修改密码为 12345
为例:
$ mysqladmin -uroot -p password 12345
Enter password:
mysqladmin: [Warning] Using a password on the command line interface can be insecure.
Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.
2、关闭数据库:
$ mysqladmin -uroot -p shutdown
3、查看数据库状态:
$ mysqladmin -uroot -p status
Enter password:
Uptime: 3 Threads: 1 Questions: 2 Slow queries: 0 Opens: 105 Flush tables: 1 Open tables: 98 Queries per second avg: 0.666
忘记密码解决
MySQL 忘记密码的解决其实和 Linux 系统相同,就是进入单用户模式下嘛~~
这里 mysqld
有如下选项提供类似单用户模式的支持:
--skip-networking
:关闭 MySQL 的网络连接,仅允许通过本地 socket 文件连接;--skip-grant-tables
:关闭验证功能,不加载授权表;
所以下面我们就可以通过 mysqld
的这两个选项来启动 MySQL 进程为单用户模式:
$ mysqld --skip-networking --skip-grant-tables &
因 mysqld_safe
其实就是对 mysqld
的再度调用封装,所以这里也可以使用 mysqld_safe
启动:
$ mysqld_safe --skip-networking --skip-grant-tables &
接下来就可以直接通过 mysql
客户端登入 MySQL,无需输入密码:
$ mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.28 MySQL Community Server (GPL)
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
localhost [(none)]>
systemd 管理 MySQL
编写如下 systemd unit 文件:
$ cat > /etc/systemd/system/mysqld2.service <<EOF
[Unit]
# 描述
Description=MySQL Server
# man 文档路径
Documentation=man:mysqld(8)
# man 文档在线地址
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
# 自启动时在 network 和 syslog 之后执行
After=network.target
After=syslog.target
[Install]
# 用于多用户级别
WantedBy=multi-user.target
[Service]
# 用户
User=mysql
# 组
Group=mysql
# 启动执行命令
ExecStart=/data/app/mysql/bin/mysqld --defaults-file=/opt/my.cnf
# 文件描述符限制
LimitNOFILE = 5000
EOF
使用 systemd 启动服务:
$ systemctl start mysqld2
字符集配置
可通过 SQL 语句临时修改:
-- 查看支持的字符集,常用 utf8、utf8mb4。
show charset;
-- 查看支持的排序规则,常用 utf8_general_ci、utf8_bin。
show collation;
-- 查看字符集
show variables like '%chara%';
-- 设置客户端字符集
set names utf8mb4;
-- 设置服务端字符集
set character_set_server=utf8mb4;
set character_set_database=utf8mb4;
永久修改需要在 my.cnf
的 [mysqld]
下添加如下配置:
character_set_server=utf8mb4
init_connect="SET NAMES 'utf8mb4'"