前言
根据网上很多教程在树莓派上安装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
之后远程也可以登录了。
后记
参考: