debian8安装mysql(MariaDB)

本文介绍了在Debian8上安装MariaDB的过程,并解决了本地登录失败的问题,同时提供了允许外网访问的配置方法。

debian8安装mysql(MariaDB)

简介

曾经做过centos 6的 MariaDB的安装,最近改用debian,但是发现以前的那一套行不通了。还出现了一些诡异的问题,在这里记录一下

安装

使用apt进行安装,这里无问题

sudo apt-get install mariadb-server

配置

主要配置

sudo mysql_secure_installation

- Enter current password for root (enter for none): (第一次没有密码)
- Set root password? [Y/n] y (设置 root 密码)
- Remove anonymous users? [Y/n] y (移除匿名账户)
- Disallow root login remotely? [Y/n] y (禁用 root 远程登录)
- Remove test database and access to it? [Y/n] y (删除 test 数据库和访问权限)
- Reload privilege tables now? [Y/n] y (刷新权限)

本地登陆

mysql -u root -p

登陆失败了?~~

切换到root下,登陆成功了

root$mysql -u root -p

什么原因?输入

systemctl status mysql.service

● mariadb.service - MariaDB database server
   Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2017-09-05 16:32:41 HKT; 2min 34s ago
 Main PID: 1789 (mysqld)
   Status: "Taking your SQL requests now..."
   CGroup: /system.slice/mariadb.service
           └─1789 /usr/sbin/mysqld

Sep 05 16:32:40 debian-lee systemd[1]: Starting MariaDB database server...
Sep 05 16:32:40 debian-lee mysqld[1789]: 2017-09-05 16:32:40 140063789994560 [Note] /usr/sbin/mysqld (mysqld 10.1.26-MariaDB-0+deb9u1) starting as process 1789 ...
Sep 05 16:32:41 debian-lee systemd[1]: Started MariaDB database server.

看起来一切正常,这是什么问题?

select user, plugin from user; 
可以看到,用户的plugin为unix_socket

MariaDB [mysql]> select user,plugin from user;
+------+-------------+
| user | plugin      |
+------+-------------+
| root | unix_socket |
+------+-------------+
1 row in set (0.00 sec)

解决办法

update mysql.user set plugin='' where User='root';
flush privileges;

允许外网登陆

sudo vim /etc/mysql/mariadb.conf.d/50-server.cnf
修改bind address 为 0.0.0.0

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

### 在 Debian安装和配置 MariaDB 的指南 #### 安装 MariaDB 要在 Debian 系统上安装 MariaDB,可以使用系统的默认软件包管理工具 `apt` 来完成。以下是具体的指令: 通过运行以下命令来更新本地的 APT 软件包索引并安装 MariaDB 服务器及其客户端组件: ```bash sudo apt update && sudo apt install mariadb-server mariadb-client -y ``` 此操作会自动处理依赖关系,并下载最新的稳定版 MariaDB 到您的系统中[^1]。 #### 配置 MariaDB 一旦安装成功,可以通过一系列安全措施进一步优化数据库服务的安全性和性能。 ##### 启动和启用 MariaDB 服务 确保 MariaDB 服务已启动并且设置为开机自启: ```bash sudo systemctl start mariadb sudo systemctl enable mariadb ``` ##### 运行安全脚本 MariaDB 提供了一个名为 `mysql_secure_installation` 的脚本来提高安全性。该脚本可以帮助您设置 root 密码、移除匿名用户、禁用远程 root 登录以及删除测试数据库等。 ```bash sudo mysql_secure_installation ``` 按照提示逐步输入密码和其他选项即可完成基本的安全配置[^1]。 ##### 修改绑定地址以允许外部连接 (可选) 如果需要让其他机器能够访问这台服务器上的 MariaDB 数据库,则需修改其配置文件 `/etc/mysql/my.cnf` 中关于 bind-address 参数的部分,默认情况下它被设为仅监听 localhost (`127.0.0.1`) 。将其更改为实际 IP 地址或者通配符 `0.0.0.0` 即可实现外网访问功能,请注意这样做可能带来额外的风险所以务必谨慎考虑防火墙规则等因素的影响。 编辑 my.cnf 文件如下所示: ```ini [mysqld] bind-address = 0.0.0.0 ``` 保存更改后重启服务使改动生效: ```bash sudo systemctl restart mariadb ``` 离线环境下也可以手动获取特定版本的 RPM 包形式分发的二进制档案并通过解压方式部署相应环境不过这种方式相对复杂一些适合特殊场景下应用比如网络受限区域内部署等等情况这里不做详述感兴趣的话可以查阅相关文档资料了解更多信息[^2]。 ```python import pymysql.cursors connection = pymysql.connect(host='localhost', user='root', password='your_password_here', cursorclass=pymysql.cursors.DictCursor) try: with connection.cursor() as cursor: sql_query = "SHOW DATABASES;" cursor.execute(sql_query) result = cursor.fetchall() finally: connection.close() print(result) ``` 以上 Python 示例展示了如何利用 PyMySQL 库查询当前存在的所有数据库列表作为验证手段之一确认我们的新实例工作正常与否。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值