Ubuntu与MariaDB兼容性问题解决方法
选择MariaDB版本时,需优先适配Ubuntu的LTS(长期支持)版本。例如:Ubuntu 22.04 LTS推荐使用MariaDB 10.6及以上稳定版本;Ubuntu 20.04 LTS适合MariaDB 10.4或10.7;Ubuntu 18.04 LTS则推荐MariaDB 10.3。避免跨大版本安装(如Ubuntu 22.04安装MariaDB 10.3),减少因版本不兼容导致的启动失败、功能缺失等问题。
sudo apt update && sudo apt upgrade -y更新系统软件源,再通过sudo apt install mariadb-server mariadb-client -y安装最新稳定版的MariaDB服务器与客户端,确保软件包依赖关系正确。sudo mysql_secure_installation,设置root用户强密码、删除匿名用户、禁止远程root登录,避免因默认配置宽松导致的安全风险。bind-address = 127.0.0.1)。需编辑配置文件/etc/mysql/mariadb.conf.d/50-server.cnf,将bind-address修改为0.0.0.0以监听所有网络接口;然后重启服务sudo systemctl restart mariadb。同时,创建允许远程连接的用户(如CREATE USER 'remote_user'@'%' IDENTIFIED BY 'your_password'; GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'%'; FLUSH PRIVILEGES;),并开放Ubuntu防火墙的3306端口(sudo ufw allow 3306/tcp; sudo ufw reload)。若MariaDB无法启动,需通过以下步骤排查:
sudo tail -n 50 /var/log/mysql/error.log获取具体错误信息(如配置文件语法错误、数据目录权限问题)。/var/lib/mysql目录及其子目录属于mysql用户和组(sudo chown -R mysql:mysql /var/lib/mysql; sudo chmod -R 755 /var/lib/mysql)。/etc/mysql/mariadb.conf.d/下的配置文件(如50-server.cnf),修正bind-address、port等参数的语法错误,避免无效配置导致启动失败。从MySQL导入数据到MariaDB时,需注意以下兼容性设置:
/etc/mysql/mariadb.conf.d/50-server.cnf)中添加character-set-server = utf8mb4,避免导入时出现乱码。unix_socket认证插件,而MySQL导出的用户可能使用mysql_native_password。需进入MariaDB安全模式(sudo mysqld_safe --skip-grant-tables &),执行UPDATE mysql.user SET plugin='mysql_native_password' WHERE User='root'; FLUSH PRIVILEGES;修改认证方式。若遇到“Access denied for user ‘root’@‘localhost’”错误,多为认证插件不兼容所致:
sudo mysqld-safe --skip-grant-tables &),执行UPDATE mysql.user SET plugin='mysql_native_password', authentication_string='' WHERE User='root'; FLUSH PRIVILEGES;,将root用户的认证方式改为mysql_native_password,并清空密码(后续可通过ALTER USER命令设置新密码)。sudo apt purge mariadb-server mariadb-client mariadb-common; sudo rm -rf /etc/mysql /var/lib/mysql),然后重新安装(sudo apt install mariadb-server -y),避免残留配置冲突。