推荐阅读
本文所有前缀以
CUSTOM_
的字段, 都表示你需要改为你自己的值,
如CUSTOM_YOUR_PASSWORD
, 表示你需要替换为你自己的密码;本文所有前缀以
mysql>
的命令, 都表示该条命令处于 mysql 环境, 输命令时是不需要输入mysql>
的
sudo apt install mysql-server
sudo systemctl start mysql
最开始 root 用户是没有密码的, 我们给它配置一个密码, 当然不配置密码也无所谓, 密码强弱也无所谓, 因为 root 的 host 是 localhost, 外网访问不了
sudo mysql
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'CUSTOM_YOUR_PASSWORD';
mysql> exit;
如果你不需要公网访问, 可以忽略该段
添加/编辑 bind-address, 以使公网可访问;
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
# 在文件 "/etc/mysql/mysql.conf.d/mysqld.cnf" 中, 添加/编辑 bind-address, 设置为 0.0.0.0
bind-address = 0.0.0.0
sudo mysql -u root -p
mysql> CREATE DATABASE CUSTOM_YOUR_DATABASE;
@'%'
表示 host
为 %
, 即任意地址可访问 (如需配置特定地址/禁止外网访问, 可另查资料)
仅内网可访问是
@'localhost'
只有 host
为 %
的用户, 才能外网访问;
# 这个密码必须很强, 因为这个用户是外网访问的 (如果你仅内网可访问, 那就无所谓了)
mysql> CREATE USER 'CUSTOM_USER'@'%' IDENTIFIED BY 'CUSTOM_YOUR_PASSWORD';
mysql> GRANT ALL PRIVILEGES ON CUSTOM_YOUR_DATABASE.* TO 'CUSTOM_USER'@'%';
mysql> FLUSH PRIVILEGES;
mysql> exit;
# 重启 mysql
sudo systemctl restart mysql
host
是否为 %
host
的命令是 mysql> select user, host from mysql.user;
执行 npx prisma db push
报错:
Error: P1001: Can't reach database server at `xxx.xxx.xx.xx`:`3306`
可以先执行 npx prisma db seed
(嗯嗯, 也会报错), 然后再执行 npx prisma db push
, 就 OK 了
有时候不小心将密码强度设置有误, 修改密码的时候抛错:
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
可以修改密码策略:
# 列出当前密码校验的策略
mysql> SHOW VARIABLES LIKE 'validate_password%';
+-------------------------------------------------+--------+
| Variable_name | Value |
+-------------------------------------------------+--------+
| validate_password.changed_characters_percentage | 0 |
| validate_password.check_user_name | ON |
| validate_password.dictionary_file | |
| validate_password.length | 8 |
| validate_password.mixed_case_count | 1 |
| validate_password.number_count | 1 |
| validate_password.policy | MEDIUM |
| validate_password.special_char_count | 1 |
+-------------------------------------------------+--------+
# 然后就可以调整密码策略了, 例如不要特殊字符:
mysql> SET GLOBAL validate_password.special_char_count = 0;
如非特别声明,本站作品均为原创,遵循【自由转载-保持署名-非商用-非衍生 创意共享 3.0 许可证】。
对于转载作品,如需二次转载,请遵循原作许可。