本文做了以下操作:
- 允许远程访问 mysql & redis
- 配置 mysql 的 root 用户密码
- 配置 redis 的密码
- 为远程登录 mysql 的 root 授予一切权限
初始化 mysql
1. 允许远程访问 mysql
修改文件/etc/mysql/mysql.conf.d/mysqld.cnf,找到以下行:
bind-address = 127.0.0.1将其修改为:
bind-address = 0.0.0.0重启 mysql 服务
systemctl restart mysql2. 设置 root 的密码,为其授予所有权限
进入 mysql 交互命令行,默认情况下 root 用户密码为空
$ mysql -u root -p
mysql> 系统中默认存在root@localhost
mysql> SELECT user, host FROM mysql.user;
+------------------+-----------+
| user | host |
+------------------+-----------+
| debian-sys-maint | localhost |
| mysql.infoschema | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
+------------------+-----------+
5 rows in set (0.00 sec)为本地登录和远程登陆的 root 设置密码,并为后者授予所有权限。
在 MySQL 中,账户由用户名和主机名组合而成,即使用户名相同,不同的主机名也会视为不同账户。如果仅创建root@%用户且未设置root@localhost的密码,则无法从本地登录 root (优先匹配到root@localhost)。
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_password';
mysql> CREATE USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'your_password';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
mysql> exit初始化 redis
1. 允许远程访问 redis
修改文件/etc/redis/redis.conf,找到以下行:
bind 127.0.0.1 ::1修改为如下内容:
#bind 127.0.0.1 ::1
bind 0.0.0.02. 设置密码
修改文件/etc/redis/redis.conf,找到以下行:
# requirepass foobared修改为如下内容:
# requirepass foobared
requirepass your_password重启 redis 服务
systemctl restart redis