MariaDB(MySQL)
安装
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
brew install mariadb
# 随系统自动启动(推荐用于开发环境)
brew services start mariadb
# 或者,仅本次启动,直到下次重启
mysql.server start
# 初始化数据库,将数据库信息安装上去(可能有的人会提示已经安装,不管它)
sudo mysql_install_db
# 初始化root账号及数据库各种设定
sudo mysql_secure_installation
# 初始化引导
Enter current password for root ( enter for none) : <– 初次运行直接回车
…
Set root password? [ Y/n] <– 是否设置root用户密码,建议设置,输入Y按回车
…
New password: <– 设置root用户的密码
Re-enter new password: <– 再输入一次你设置的root的密码
…
Remove anonymous users? [ Y/n] <– 是否删除匿名用户,建议删除,Y删除,n不删除
…
Disallow root login remotely? [ Y/n] <– 是否禁止root远程登录,按需配置,Y禁止远程登录,n开启远程登录
…
Remove test database and access to it? [ Y/n] <– 是否删除test数据库,Y删除、n留着
…
Reload privilege tables now? [ Y/n] <– 是否重新加载权限表,建议重新加载,Y重新加载,n不重新加载
…
All done ! If you’ve completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!
卸载
1
2
3
4
5
6
7
8
9
10
11
brew uninstall mariadb
# 手动删除残留
sudo rm /usr/local/mysql
sudo rm -rf /usr/local/mysql*
sudo rm -rf /Library/StartupItems/MySQLCOM
sudo rm -rf /Library/PreferencePanes/My*
rm -rf ~/Library/PreferencePanes/My*
sudo rm -rf /Library/Receipts/mysql*
sudo rm -rf /Library/Receipts/MySQL*
sudo rm -rf /private/var/db/receipts/mysql
修改端口
为了与可能已安装的 MySQL 实例隔离,避免冲突,修改 MariaDB 端口。
对于通过 Homebrew 安装的 MariaDB,主配置文件通常在 /opt/homebrew/etc/my.cnf,同时它会包含 /opt/homebrew/etc/my.cnf.d/ 目录下的文件。建议在该目录下创建一个新文件(如 server.cnf)进行设置。
1
2
3
4
5
6
# 在 /opt/homebrew/etc/my.cnf.d/server.cnf 文件中添加或修改以下内容
[mysqld]
port = 3307 # 设置为与MySQL不同的端口,如3307
bind-address = 0.0.0.0 # 允许所有网络接口的连接,包括局域网
datadir = /opt/homebrew/var/mysql-maria # 设置一个独立的数据目录
socket = /tmp/mariadb.sock # 设置一个独立的socket文件
示例中的 /opt/homebrew/var/mysql-maria 符合 Homebrew 在 macOS 上的惯例。你需要手动创建这个目录并为其设置正确的所有者权限 :
1
2
sudo mkdir -p /opt/homebrew/var/mysql-maria
sudo chown -R $( whoami) :admin /opt/homebrew/var/mysql-maria
关键提示 :在初始化数据库之前,必须确保新的数据目录是空的 。
Socket文件配置 :Socket 文件用于本地进程间通信。将其设置为与默认的 /tmp/mysql.sock不同的路径(如 /tmp/mariadb.sock)可以避免与 MySQL 冲突 。配置完成后,本地客户端连接时可能需要通过 -S参数指定这个新的 socket 文件路径,例如:mysql -u root -p -S /tmp/mariadb.sock。
重启服务 :初始化成功后,重新启动 MariaDB 服务以应用新的配置 。
1
brew services restart mariadb
远程连接
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 在宿主机登录 MariaDB 服务器
mysql -u root -p -P 3307
Enter password:
# 执行以下 SQL 命令,查看用户的主机权限设置
MariaDB [( none)] > SELECT user, host FROM mysql.user WHERE user = 'root' ;
+------+-----------+
| User | Host |
+------+-----------+
| root | localhost |
+------+-----------+
1 row in set ( 0.002 sec)
# 创建 'root'@'%' 用户
CREATE USER 'root' @'%' IDENTIFIED BY '你的密码' ;
# 授予权限
GRANT ALL PRIVILEGES ON *.* TO 'root' @'%' WITH GRANT OPTION;
# 刷新权限
FLUSH PRIVILEGES;
验证权限配置
完成授权后,强烈建议您进行验证,以确保配置正确无误。
查看用户列表:可以运行以下命令,确认 ‘root’@’%’ 用户是否已存在。
1
SELECT user , host FROM mysql . user WHERE user = 'root' ;
您应该能看到两条记录:‘root’@’localhost’ 和 ‘root’@’%’。
查看具体权限:可以运行以下命令,检查该用户被授予的权限。
1
SHOW GRANTS FOR 'root' @ '%' ;
如果一切正常,输出会显示该用户对所有数据库(. )拥有全部权限(ALL PRIVILEGES)。
总结 :‘root’@’localhost’ 和 ‘root’@’%‘是两个完全独立的用户账户,尽管它们共享同一个用户名 root。你可以为它们设置不同的密码和权限。核心决策点在于:是否需要从另一台机器远程登录数据库。在安全性至上的今天,严格控制 ‘root’@’%‘的使用是保证数据库安全的关键一环。
部署Cypht
先通过 CREATE DATABASE cypht CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci; 创建数据库,推荐指定字符集,确保兼容性 。utf8mb4 支持更广泛的字符(如表情符号)。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
services :
cypht :
image : cypht/cypht:2.5.1
ports :
- "80:80"
environment :
# === 重要:初始认证配置 ===
# 以下两行仅在首次安装后首次登录时使用。
# 登录成功后,请务必在网页版设置中修改管理员密码。
# 修改密码后,**必须**将这两行从本配置中删除或注释掉,然后重启容器。
# 否则重启后,环境变量中的旧密码将覆盖您修改的新密码,导致登录失败。
- AUTH_USERNAME=admin # 初始账号
- AUTH_PASSWORD=admin # 初始密码
# 数据库连接配置 - 关键修改点
- DB_CONNECTION_TYPE=host
- DB_DRIVER=mysql
- DB_HOST=host.docker.internal # 使用特殊DNS指向宿主机
- DB_PORT=3307
- DB_NAME=cypht
- DB_USER=xxxx # 用户
- DB_PASS=xxxx # 密码
# 会话与配置存储方式
- SESSION_TYPE=DB
- USER_CONFIG_TYPE=DB
volumes :
# 日志目录
- ./data/log/nginx:/var/log/nginx
- ./data/log/php:/var/log/php
- ./data/log/supervisord:/var/log/supervisord
- ./data/fonts:/usr/local/share/cypht/site/fonts
# 应用数据持久化目录
- ./data/user_settings:/var/lib/hm3/users # 用户配置和设置
- ./data/user_attachments:/var/lib/hm3/attachments # 邮件附件
添加邮箱
QQ邮箱
用电脑浏览器登录您的QQ邮箱网页版 (mail.qq.com)。
点击顶部 “设置” -> 选择 “账户” 选项卡。
向下滚动找到 “POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务” 这个区域。
找到 “开启IMAP/SMTP服务” 或 “生成授权码” 的选项,按照提示(可能需要验证密保)生成一个 16位的授权码。
复制这串授权码,然后粘贴到Cypt这个“密码”输入框里即可。
名称:QQ邮箱
Email or Username:邮箱账号
密码:上面获取的授权码
配置 IMAP (用于接收邮件)
Address (地址): imap.qq.com
Port (端口): 993
加密选项: 选择 ✅ 使用TLS (这是最常用的安全连接方式)。
配置 SMTP (用于发送邮件)
ddress (地址): smtp.qq.com
Port (端口): 465。
加密选项: 选择 ✅ 使用TLS (这是最常用的安全连接方式)。
其他选项 (可暂时不填或按需填写)
Setup JMAP Server: 不勾选 (QQ邮箱不支持JMAP)。
从集成页面隐藏: 通常不勾选。
Reply to (回复地址): 可以留空,或填写您的QQ邮箱 xxxxx@qq.com 。
签名: 可以留空,后续在设置中添加。
Set this profile default (设为默认配置文件): 如果这是您的主要邮箱,可以勾选。