1 mysql
1 安装
1 | sudo pacman -S mysql |
2 初始化
初始化的时候会创建一个叫mysql的用户、一个mysql组、mysql的root用户、生成root用户初始密码。不要改路径,改了直接执行会报错。
注意,务必记下初始密码,后面用。
1 | sudo mysqld --initialize --user=mysql --basedir=/usr --datadir=/var/lib/mysql |
密码在倒数第二行
- 2024-03-27T19:34:24.585990Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost
Ssfpyoyt5-t<
2024-03-27T19:34:27.150507Z 0 [System] [MY-015018] [Server] MySQL Server Initialization - end.
没记下来就执行卸载命令卸载mysql重新初始化,或者查看mysqld.log
1 | cat /安装路径下/mysqld.log |
3 设置mysql开机自启
1 | #启动及自启 |
4 修改密码
1 | ALTER USER 'root'@'localhost' IDENTIFIED BY 'root'; |
5 可视化连接工具
推荐海狸,免费,能连接N多数据库
海狸官网:https://dbeaver.io/
6 mysql安全
执行mysql安全配置
1 | mysql_secure_installation |
选项内容包含
选择密码验证策略强度,建议生产环境选择高强度的密码验证策略。
设置 MySQL 密码
移除匿名用户。
设置是否禁止远程连接 MySQL
删除 test 库及对 test 库的访问权限。
重新加载授权表。
//TODO服务器上可不能这样安装完就了事,现在这样,数据库就是在网络上裸奔,数据库安全见我另一篇文章。
7 mysql连接问题
(1)远程连接问题
在用SQLyog或Navicat中配置远程连接MySQL数据库时遇到如下报错信息,这是由于MySQL默认不支持远
程连接。
查看系统数据库MySQL中的user表:
1 | USE mysql; |
可以看到root用户的当前主机配置信息为localhost。修改Host为通配符%
Host列指定了允许用户登录所使用的IP:
Host=localhost,表示只能通过本机客户端去访问。Host=%,表示所有IP都有连接权限。
1 | UPDATE user SET Host = '%' WHERE User ='root'; |
注意:在生产环境下不能为了省事将host设置为%,这样做会存在安全问题,可以设置为生产环境IP。
(2)使用SQLyog连接
出现这个原因是MySQL 8 之前的版本中加密规则是mysql_native_password,而在MySQL 8之后,加密规则是caching_sha2_password。
解决方案有两种,一种是升级SQLyog和Navicat(因此,新版SQLyog不会出现此问题),另一种是把MySQL用户登录密码加密规则还原成mysql_native_password。
**解决方法:**Linux下 mysql -uroot -p 登录你的 MySQL 数据库,然后 执行这条SQL:
1 | ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; |
然后再重新配置SQLyog的连接,重新填写密码,则可连接成功了。
2 redis
1 安装
1 | yay -S redis |
2 自启
1 | systemctl enable --now redis |
3 修改配置文件
(redis改为–>valkey)
1 | vim /etc/valkey/valkey.conf |
配置文件修改4处:
1 后端启动
daemonize yes
2 保护模式
protected-mode no
3 远程连接
注释掉
bind 127.0.0.1 -::1
4 redis访问密码
requirepass redis
3 nvm
//todo,见站内文章



