MariaDB 安装配置教程 (Deepin/Ubuntu)
一、环境说明
-
操作系统: Deepin / Ubuntu
-
数据库: MariaDB 10.x
-
用途: Hive Metastore 元数据存储
-
端口: 3306
二、安装 MariaDB
1. 更新软件源
sudo apt update
2. 安装 MariaDB Server
sudo apt install mariadb-server mariadb-client -y
3. 启动 MariaDB 服务
# 启动服务 sudo systemctl start mariadb # 设置开机自启 sudo systemctl enable mariadb # 查看服务状态 sudo systemctl status mariadb
应该看到 active (running) 状态。
三、MariaDB 安全配置
1. 运行安全配置脚本
sudo mysql_secure_installation
2. 配置向导
Enter current password for root (enter for none): # 第一次安装直接回车 Set root password? [Y/n] Y # 设置 root 密码,建议设置为 123456 或其他你记得住的密码 New password: 123456 Re-enter new password: 123456 Remove anonymous users? [Y/n] Y # 删除匿名用户 Disallow root login remotely? [Y/n] n # 允许 root 远程登录 (选 n) Remove test database and access to it? [Y/n] Y # 删除测试数据库 Reload privilege tables now? [Y/n] Y # 重新加载权限表
四、配置 MariaDB
1. 编辑配置文件
sudo vim /etc/mysql/mariadb.conf.d/50-server.cnf
2. 修改绑定地址 (允许远程连接)
找到 bind-address 行,修改为:
# 注释掉或修改为 0.0.0.0 # bind-address = 127.0.0.1 bind-address = 0.0.0.0
3. 添加字符集配置 (可选但推荐)
在文件末尾添加:
[mysqld] character-set-server=utf8mb4 collation-server=utf8mb4_unicode_ci [client] default-character-set=utf8mb4
4. 重启 MariaDB 服务
sudo systemctl restart mariadb
五、创建 Hive 数据库和用户
1. 登录 MariaDB
mysql -u root -p # 输入刚才设置的密码: 123456
2. 创建 Hive 元数据库
-- 创建 Hive 元数据库 CREATE DATABASE hive_metastore DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- 创建 Hive 用户 CREATE USER 'hive'@'%' IDENTIFIED BY 'hive123456'; -- 授予权限 GRANT ALL PRIVILEGES ON hive_metastore.* TO 'hive'@'%'; -- 刷新权限 FLUSH PRIVILEGES; -- 查看数据库 SHOW DATABASES; -- 退出 EXIT;
3. 测试 Hive 用户登录
mysql -u hive -p # 输入密码: hive123456
SHOW DATABASES; USE hive_metastore; EXIT;
六、创建业务数据库 (用于测试)
1. 登录 MariaDB
mysql -u root -p123456
2. 创建业务数据库
-- 创建业务数据库 CREATE DATABASE zhzt_db DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- 创建业务用户 CREATE USER 'zhzt'@'%' IDENTIFIED BY 'zhzt123456'; -- 授予权限 GRANT ALL PRIVILEGES ON zhzt_db.* TO 'zhzt'@'%'; -- 刷新权限 FLUSH PRIVILEGES; EXIT;
七、安装 MySQL JDBC 驱动 (Hive 需要)
1. 下载 MySQL Connector/J
cd ~/Downloads # 下载 MySQL JDBC 驱动 wget https://repo1.maven.org/maven2/mysql/mysql-connector-java/8.0.33/mysql-connector-java-8.0.33.jar
2. 复制到 Hive lib 目录
# 注意: 这一步需要先安装 Hive 后才执行 # 如果 Hive 还未安装,暂时跳过,安装 Hive 时再执行 sudo cp mysql-connector-java-8.0.33.jar /usr/local/hive/lib/
八、常见问题与解决方案
问题1: 无法使用密码登录 root
现象:
mysql -u root -p ERROR 1698 (28000): Access denied for user 'root'@'localhost'
原因: MariaDB 默认使用 unix_socket 认证而不是密码认证
解决方案:
# 使用 sudo 登录 sudo mysql # 修改 root 用户认证方式 USE mysql; UPDATE user SET plugin='mysql_native_password' WHERE User='root'; FLUSH PRIVILEGES; EXIT; # 重启服务 sudo systemctl restart mariadb # 现在可以用密码登录了 mysql -u root -p123456
问题2: 远程连接被拒绝
检查防火墙:
# 查看防火墙状态 sudo ufw status # 如果启用了防火墙,开放 3306 端口 sudo ufw allow 3306/tcp sudo ufw reload
检查绑定地址:
sudo netstat -tlnp | grep 3306
应该显示 0.0.0.0:3306 而不是 127.0.0.1:3306
问题3: 字符集问题
查看当前字符集:
SHOW VARIABLES LIKE 'character%'; SHOW VARIABLES LIKE 'collation%';
统一设置为 utf8mb4:
sudo vim /etc/mysql/mariadb.conf.d/50-server.cnf
添加:
[mysqld] character-set-server=utf8mb4 collation-server=utf8mb4_unicode_ci init_connect='SET NAMES utf8mb4' [client] default-character-set=utf8mb4 [mysql] default-character-set=utf8mb4
重启服务:
sudo systemctl restart mariadb
问题4: Hive 连接 MariaDB 失败
检查用户权限:
SELECT user, host FROM mysql.user; SELECT * FROM mysql.db WHERE user='hive';
重新授权:
GRANT ALL PRIVILEGES ON hive_metastore.* TO 'hive'@'%' IDENTIFIED BY 'hive123456'; FLUSH PRIVILEGES;
问题5: 虚拟机挂起后服务停止
重启 MariaDB:
sudo systemctl restart mariadb sudo systemctl status mariadb
九、MariaDB 基本命令
1. 数据库操作
-- 显示所有数据库 SHOW DATABASES; -- 创建数据库 CREATE DATABASE test_db; -- 使用数据库 USE test_db; -- 删除数据库 DROP DATABASE test_db;
2. 用户管理
-- 查看所有用户 SELECT user, host FROM mysql.user; -- 创建用户 CREATE USER 'username'@'%' IDENTIFIED BY 'password'; -- 授权 GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'%'; -- 撤销权限 REVOKE ALL PRIVILEGES ON database_name.* FROM 'username'@'%'; -- 删除用户 DROP USER 'username'@'%'; -- 刷新权限 FLUSH PRIVILEGES;
3. 表操作
-- 显示所有表 SHOW TABLES; -- 查看表结构 DESC table_name; -- 删除表 DROP TABLE table_name;
十、服务管理命令
# 启动服务 sudo systemctl start mariadb # 停止服务 sudo systemctl stop mariadb # 重启服务 sudo systemctl restart mariadb # 查看状态 sudo systemctl status mariadb # 开机自启 sudo systemctl enable mariadb # 禁用开机自启 sudo systemctl disable mariadb
十一、数据库连接信息汇总
| 用途 | 数据库 | 用户名 | 密码 | 权限 |
|---|---|---|---|---|
| 系统管理 | - | root | 123456 | 所有权限 |
| Hive 元数据 | hive_metastore | hive | hive123456 | hive_metastore.* |
| 业务数据 | zhzt_db | zhzt | zhzt123456 | zhzt_db.* |
十二、备份与恢复
备份数据库
# 备份单个数据库 mysqldump -u root -p123456 hive_metastore > hive_metastore_backup.sql # 备份所有数据库 mysqldump -u root -p123456 --all-databases > all_databases_backup.sql
恢复数据库
# 恢复数据库 mysql -u root -p123456 hive_metastore < hive_metastore_backup.sql
十三、性能优化 (可选)
编辑配置文件:
sudo vim /etc/mysql/mariadb.conf.d/50-server.cnf
添加优化参数:
[mysqld] # 缓冲池大小 (建议设置为系统内存的 50-70%) innodb_buffer_pool_size = 1G # 最大连接数 max_connections = 200 # 查询缓存 query_cache_size = 64M query_cache_type = 1
重启服务:
sudo systemctl restart mariadb
安装完成后,继续安装 Hive

被折叠的 条评论
为什么被折叠?



