树莓派安装配置 MySQL

树莓派安装配置 MySQL

这里我们安装的是 MySQL57 版本

安装 MySQL

首先我们要考虑使用命令安装 MySQL:

sudo apt-get install mysql-client mysql-server

但是在树莓派最新版系统中会报错如下:

正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
正在读取状态信息... 完成                 
没有可用的软件包 mysql-server,但是它被其它的软件包引用了。
这可能意味着这个缺失的软件包可能已被废弃,
或者只能在其他发布源中找到

没有可用的软件包 mysql-client,但是它被其它的软件包引用了。
这可能意味着这个缺失的软件包可能已被废弃,
或者只能在其他发布源中找到

E: 软件包 mysql-client 没有可安装候选
E: 软件包 mysql-server 没有可安装候选

这个错误是由于在新版的树莓派系统中,已经用 MariaDB 代替了我们 MySQL,并且 MariaDB 完全兼容 MySQL 的 APi,所以我们这里直接选择安装 MariaDB 即可

安装 MariaDB

首先我们要确定版本对应关系,这里我们需要使用的是 8.0 以上,或者 5.7 版本的 MySQL,MariaDB 与 MySQL 版本对应关系如下:

所以这里我们选择安装 10.0 或者 10.4 版本的 MariaDB,但是由于最新版的树莓派系统中智能够安装 MariaDB 10.5 版本,所以我们直接安装 MariaDB 10.5

直接使用安装命令:

sudo apt-get install mariadb-server-10.5

MariaDB 使用说明

首先我们按照 MySQL 的方式进行登录:

mysql -u root -p

这里会出现报错:

ERROR 1698 (28000): Access denied for user 'root'@'localhost'

这里说明我们没有权限,所以我们在登录命令前加上 sudo 即可,这样我们就可以成功登录了,这里我们可以使用与 MySQL 一样的命令

MariaDB 配置开机启动

首先我们需要将数据库配置为开机启动,直接使用如下命令即可:

systemctl restart mariadb.service #启动程序
systemctl enable mariadb.service #设为开机自启动

设置 root 账号密码

sudo mysqladmin -u root -p password
# 这里会要求输入三次密码
Enter password: #输入原来的密码,没有密码直接按回车跳过
New password: #输入新密码
Confirm new password: # 确认新密码,一定要与上面输入的新密码完全一致

创建新账号

在登录到数据库后,建立新用户、设定密码与登陆位置示例如下:

select user(); #查看当前登录用户
use mysql
select host,user,password from user; #查看数据库所有登录范围、用户和密码,4 个root 不是同一个用户,可以单独设置密码
create user uos@'localhost' identified by '123456'; #建立可以本地登录的用户uos 并设置密码123456
create user uos@'%' identified by '123456'; #建立可以远程登录的用户uos并设置密码123456
create user test@'localhost' identified by '123456'; #建立可以本地登录的用户test并设置密码123456
create user test@'192.168.200.10' identified by '123456'; #建立可以从192.168.200.10 主机登录的用户test 并设置密码123456
grant all on *.* to uos@'localhost'; #授权本地登录的用户uos 对所有数据库的所有表有所有权限
grant select on scott.* to test@'localhost'; #授权本地登录的用户test 可以读取scott 数据库的所有表
grant all on *.* to uostest@'%' identified by '123456'; #可以建立用户、授权、设置密码一起做
flush privileges; #刷新授权表
show privileges; #查看所有权限
show grants for uos@'localhost'; #查看用户权限
show grants for test@'localhost';
revoke select on scott.* from test@'192.168.200.10'; #收回权限

MariaDB 忘记 root 密码怎么办?

这里我们修改配置文件即可

vim /etc/mysql/mariadb.conf.d/50-server.cnf
# 在 mysqld 下添加如下字段
[mysqld]
skip-grant-tables #在[mysqld]下添加此字段,进入但用户模式

重启服务

systemctl restart mariadb.service

然后不需要密码就可以登录数据库,登录后执行如下命令:

use mysql
update user set password=password('uos') where user='root';

然后再把我们开头添加的那句话删掉就可以

posted @ 2023-05-24 13:43  ppqppl  阅读(341)  评论(0编辑  收藏  举报