Deepin系统安装大数据系列教程-第三部分(MariaDB 安装配置教程)

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

十一、数据库连接信息汇总

用途数据库用户名密码权限
系统管理-root123456所有权限
Hive 元数据hive_metastorehivehive123456hive_metastore.*
业务数据zhzt_dbzhztzhzt123456zhzt_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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值