树莓派安装MySQL

树莓派raspbian系统 + MySQL,实现树莓派安装MySQL,安装mysql-server失败时推荐使用本方法。

Posted by K4ys0n on November 28, 2019

前言

根据网上很多教程在树莓派上安装MySQL,是使用下面方法:

sudo apt-get update
sudo apt-get install mysql-server mysql-client python-mysqldb

但是这一步可能会报错,需要依赖包mariadb-server-10.0,或者需要依赖包default-mysql-server。

如果按照提示先下载依赖包,又会提示下载依赖包的依赖包,往复循环,很烦!!

其实树莓派raspbian系统中的MySQL使用Mariadb来替换的,其实也是MySQL吧,我猜测。因此本教程解决MySQL安装不了的问题的方法就是更换apt源,下载mariadb代替MySQL。

步骤

1. 更换阿里apt源

点击这里,这是阿里巴巴raspbian系统apt源地址,找到配置方法,复制配置方法中的两行命令。

# 编辑 `/etc/apt/sources.list` 文件,删除原文件所有内容,用以下内容取代:
deb https://mirrors.aliyun.com/raspbian/raspbian/ buster main non-free contrib
deb-src https://mirrors.aliyun.com/raspbian/raspbian/ buster main non-free contrib

也可以复制我这里的两行deb,但是我不确定阿里源会不会变更,所以最好是去阿里源复制。

然后连接树莓派,输入以下命令备份sources.list并修改:

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak     # 备份到bak文件
sudo nano /etc/apt/sources.list     # 打开sources.list

光标移到第一行,把第一个deb那行删除或者加#号注释掉,然后再把前面复制阿里源的两行deb输入进来,按ctrl+O保存,回车,再按ctrl+X退出。

deb https://mirrors.aliyun.com/raspbian/raspbian/ buster main non-free contrib
deb-src https://mirrors.aliyun.com/raspbian/raspbian/ buster main non-free contrib
# deb http://raspbian.raspberrypi.org/raspbian/ buster main contrib non-free rpi
# Uncomment line below then 'apt-get update' to enable 'apt-get source'
#deb-src http://raspbian.raspberrypi.org/raspbian/ buster main contrib non-free rpi

2. 查询是否已安装MySQL

输入以下命令:

dpkg -l | grep mysql

如果输入完什么也没有就说明没有安装mysql及相关依赖包。像我安装过mysql运行结果就是类似这样的:

pi@raspberrypi:/etc/apt $ dpkg -l | grep mysql
ii  libdbd-mysql-perl:armhf               4.050-2                             armhf        Perl5 database interface to the MariaDB/MySQL database
ii  mysql-common                          5.8+1.0.5                           all          MySQL database common files, e.g. /etc/mysql/my.cnf
ii  python-mysqldb                        1.3.10-2+b1                         armhf        Python interface to MySQL

3. 删除MySQL并清理残留数据

如果查询结果是空,就可以跳过这一步。

如果查询包含MySQL等,就依次输入以下命令删除MySQL:

sudo apt-get autoremove --purge mysql-server
sudo apt-get remove mysql-server
sudo apt-get autoremove mysql-server
sudo apt-get remove mysql-common

删除完输入以下命令清理残留数据

dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P

4. 安装MySQL(Mariadb)

输入以下命令更新apt源:

sudo apt-get update
sudo apt-get upgrade

输入以下命令安装Mariadb:

sudo apt-get install mariadb-server-10.0
sudo apt-get install mariadb-client-10.0
sudo apt-get install python-mysqldb

至此MySQL安装完毕,接着测试一下。

5. 测试MySQL并修改密码

输入以下命令打开MySQL:

sudo mysql -u root -p

初始密码是空,直接回车就行。 接着修改密码,进入MySQL之后,输入以下命令:

select Host,User,plugin from mysql.user where User='root';

可以看到plugin加密方式是unix_socket,接着输入以下三行SQL命令进行修改密码:

update mysql.user set plugin='mysql_native_password'; #重置加密方式
update mysql.user set password=PASSWORD("newpassword") where User='root'; #设置新密码
flush privileges; #刷新权限信息

接着输入”exit;”,退出MySQL,再进来的时候就需要输入密码了。

6. 如何配置远程登录MySQL

输入以下命令:

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
# 注释掉这一行:bind-address
# 然后重启
sudo /etc/init.d/mysql restart

之后远程也可以登录了。

后记

参考:

树莓派安装MySQL数据库与卸载

Raspberry - 安装Mysql 5.7

树莓派mariadb 设置密码