树莓派安装配置 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';
然后再把我们开头添加的那句话删掉就可以