Linux系统中的mariadb数据库使用

本文详细介绍MariaDB数据库的安装步骤,包括软件安装、配置、密码设置及常见操作如创建库、表,数据增删改查,用户管理,权限设置,备份与恢复等。同时,提供了数据库管理的实用技巧。

1、安装数据库
yum search mariadb
yum install mariadb-server.x86_64 -y 安装数据库软件
netstat -antlupe | grep mysql 查看对外端口(可不用做)
vim /etc/my.cnf 设置数据库对外接口关闭
10 skip-networking=1
systemctl restart mariadb 重启
mysql_secure_installation 设置数据库访问密码
Set root password? [Y/n] 设置密码,y回车
Remove anonymous users? [Y/n] 是否去掉匿名用户权限,y回车
Disallow root login remotely? [Y/n] 是否禁止root用户远程登陆,y回车
Remove test database and access to it? [Y/n] 是否删除test库和对test库的访问权限,回车
Reload privilege tables now? [Y/n] 是否刷新授权表使修改生效,回车
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2、数据库管理
mysql -uroot -p 进入数据库
SHOW DATABASES; 列出库
CREATE DATABASE westos; 建立库
USE westos; 进入库
SHOW TABLES; 查看表
CREATE TABLE linux( 建立表
-> username varchar(10) not null,
-> passwd varchar(50) not null
-> );
DESC linux; 查看表结构
INSERT INTO linux VALUES (‘wang’,‘112’); 给表中增添数据
INSERT INTO linux VALUES (‘lee’,‘122’);

SELECT * FROM linux; 查询所有字段在linux表
SELECT username,passwd from linux; 查询指定字段在linux表
数据库中命令都要以分号(;)结尾,否则不能执行
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2)更改
ALTER TABLE linux ADD class varchar(20); 添加class列
ALTER TABLE linux DROP class; 删除class列
ALTER TABLE linux ADD class varchar (20) AFTER username; 在username列后添加class列
UPDATE linux SET class=‘linux’; 给class中添加数据,但是此命令会给class中所有都添加linux数据
UPDATE linux SET class=‘java’ WHERE username=‘lee’; 给class中username=lee的行添加数据java
ALTER TABLE linux RENAME redhat 把库linux改名为redhat–对库名字一般不能改,如必须修改,需要先备份数据
UPDATE linux SET class=‘jaja’ WHERE username=‘lee’ AND passwd=‘122’; 更改数据
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3)备份
mysqldump -uroot -p --all-database 备份所有数据
mysqldump -uroot -p --all-database --no-data 备份框架,不包括数据
mysqldump -uroot -p westos > /mnt/westos.sql 备份westos库到/mnt/westos.sql

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
4)删除
DROP DATABASE westos; 删除库
DROP TABLE westos.linux; 删除表
DELETE FROM westos.linux WHERE username=‘lee’; 删除表中数据
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
5)还原
vim /mnt/westos.sql 修改文件
21 CREATE DATABASE westos; 建立库
22 USE westos;
mysql -uroot -predhat < /mnt/westos.sql 恢复
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
方法2
mysql -uroot -predhat -e “CREATE DATABASE westos;”; 注意此处redhat是数据库的密码
mysql -uroot -predhat westos < /mnt/westos.sql
在这里插入图片描述
对数据库的操作也可如下
[root@dns1 named]# mysql -uroot -predhat -e “SHOW DATABASES;” redhat是数据库密码
[root@dns1 named]# mysql -uroot -predhat -e “SELECT * FROM westos.linux;”
3、用户管理授权
CREATE USER lee@localhost identified by ‘westos’; 建立lee用户,lee用户在本机可登陆, 密码是westos
CREATE USER lee@"%" identified by ‘westos’; 建立的lee用户 ,可远程登陆,密码是westos
SELECT User FROM mysql.user; 查看用户
SHOW GRANTS FOR lee@localhost; 查看lee用户的权限
GRANT SELECT ON westos.* TO lee@localhost; 给lee用户SELECT的权限
GRANT INSERT ON westos.* TO lee@localhost; 给lee用户INSERT权限
REVOKE SELECT ON westos.* FROM lee@localhost; 去掉lee用户SELECT的权限
REVOKE INSERT ON westos.* FROM lee@localhost; 去掉lee用户NSERT权限
DROP USER lee@localhost; 删除lee用户
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
4、密码修改
1)当知道用户密码时
mysqladmin -uroot -predhat password westos 修改原来密码redhat为新密码westos
在这里插入图片描述
2)当不知道用户密码时
systemctl stop mariadb 关掉数据库服务
mysqld_safe --skip-grant-tables & 启动跳过授权检测
mysql ##进入数据库
UPDATE mysql.user SET Password=password(‘redhat’) WHERE User=‘root’; 设置密码为redhat,使用加密
quit
ps aux |grep mysql 查看mysql进程
kill -9 9487 关掉多余进程
kill -9 9642
ps aux |grep mysql 再次查看进程
systemctl start mariadb 开启数据库服务
在这里插入图片描述
在这里插入图片描述

<think>嗯,用户想在Linux系统中配置MariaDB数据库,启用SSL支持,特别是把have_ssl参数设置为enable。我需要一步步想清楚怎么做。首先,我得回忆一下MariaDB启用SSL的一般步骤。可能涉及到生成SSL证书和密钥,然后修改配置文件,最后重启服务并验证。但具体步骤可能需要注意哪些细节呢? 根据用户提供的引用,特别是引用[1]里的安装openssl-devel,可能需要先安装相关依赖。比如,在安装过程中如果缺少开发包,可能会影响SSL功能的启用。所以第一步可能需要检查是否安装了openssl和相关的开发包,比如openssl-devel或者libssl-dev,这取决于Linux发行版是yum还是apt。 接下来,生成SSL证书。通常使用openssl命令来生成CA证书、服务器证书和密钥。需要确保生成的证书权限正确,MariaDB用户有权限读取。可能需要将证书放在特定目录,比如/etc/mysql/ssl,并设置正确的权限,比如600或者更严格的权限。 然后,修改MariaDB的配置文件,通常是my.cnf或者某个在/etc/mysql/conf.d/下的配置文件。在[mysqld]部分添加ssl-ca、ssl-cert、ssl-key的路径。同时,设置have_ssl为YES。不过,MariaDB的文档中提到,have_ssl参数可能已经被废弃,现在是通过检查证书文件是否存在来决定是否启用SSL。但用户特别提到要设置have_ssl为enable,可能需要确认当前版本的处理方式。比如,MariaDB 10.1之后可能不再需要显式设置have_ssl,而是自动启用,如果有正确的证书配置的话。 配置完成后需要重启MariaDB服务,使用systemctl restart mariadb或者service mariadb restart。之后需要验证SSL是否启用,可以通过登录数据库执行SHOW VARIABLES LIKE '%ssl%';来查看have_ssl是否为YES,以及是否有正确的证书路径。 另外,用户可能需要配置强制SSL连接,比如在用户授权时使用REQUIRE SSL子句,或者在全局配置中设置。引用[2]中提到MySQL 5.7和8.0在SSL配置上的差异,可能需要注意MariaDB的版本兼容性问题,不过用户的问题集中在MariaDB,所以可能不需要考虑MySQL的具体情况。 还有,引用[3]中提到数据库设置部分,可能需要用户确保在应用程序连接数据库使用正确的SSL参数,比如WordPress的配置。但用户当前的问题主要是服务端的配置,所以可能不需要涉及应用端的调整。 最后,测试SSL连接是否成功,可以使用命令行工具如mysql --ssl-mode=REQUIRED -u用户 -p,或者检查会话中的状态变量,比如Ssl_cipher是否存在。 可能需要注意的常见问题包括证书路径错误、权限问题、服务未正确重启等。如果遇到问题,可能需要查看MariaDB的错误日志,通常位于/var/log/mysql/或/var/log/mariadb/目录下。 总结步骤应该是:安装依赖→生成证书→配置MariaDB→重启服务→验证配置→测试连接→可选配置强制SSL。这样用户就能逐步完成SSL的启用了。</think>### 分步配置 MariaDB 启用 SSL 支持 #### 1. 安装 OpenSSL 依赖 首先确保系统已安装 OpenSSL 开发库: ```bash # 对于 CentOS/RHEL 系统 yum install openssl-devel -y # 引用[1]中的安装方法 # 对于 Debian/Ubuntu 系统 apt-get install libssl-dev -y ``` #### 2. 生成 SSL 证书文件 ```bash # 创建证书存储目录 mkdir -p /etc/mysql/ssl cd /etc/mysql/ssl # 生成 CA 私钥和证书 openssl genrsa 2048 > ca-key.pem openssl req -new -x509 -nodes -days 3650 -key ca-key.pem -out ca-cert.pem # 生成服务器证书 openssl req -newkey rsa:2048 -days 3650 -nodes -keyout server-key.pem -out server-req.pem openssl rsa -in server-key.pem -out server-key.pem openssl x509 -req -in server-req.pem -days 3650 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 -out server-cert.pem # 设置文件权限 chmod 600 /etc/mysql/ssl/* chown mysql:mysql /etc/mysql/ssl/* ``` #### 3. 修改 MariaDB 配置文件 编辑配置文件 `/etc/my.cnf.d/server.cnf` (路径可能因版本不同),在 `[mysqld]` 段添加: ```ini [mysqld] ssl-ca=/etc/mysql/ssl/ca-cert.pem ssl-cert=/etc/mysql/ssl/server-cert.pem ssl-key=/etc/mysql/ssl/server-key.pem ``` #### 4. 重启 MariaDB 服务 ```bash systemctl restart mariadb # 或 service mariadb restart ``` #### 5. 验证 SSL 状态 登录 MariaDB 执行: ```sql SHOW VARIABLES LIKE '%ssl%'; ``` 正常输出应包含: ``` have_ssl | YES ssl_cert | /etc/mysql/ssl/server-cert.pem ssl_key | /etc/mysql/ssl/server-key.pem ``` #### 6. 强制用户使用 SSL(可选) 为特定用户添加 SSL 连接限制: ```sql ALTER USER '用户名'@'%' REQUIRE SSL; FLUSH PRIVILEGES; ``` #### 7. 测试 SSL 连接 使用客户端连接时添加 SSL 参数: ```bash mysql -u 用户名 -p --ssl ``` ### 关键验证点 1. 证书文件权限需为 `mysql` 用户可读 2. 错误日志 `/var/log/mariadb/mariadb.log` 不应出现 SSL 相关报错 3. 连接后执行 `\s` 命令应显示 `SSL: Cipher in use` [^2]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值