raspbian_mysql

安装mysql

使用管理员权限运行apt-get获取最新的MySQL及Python编程接口(之后用于数据库编程):

1
sudo apt-get install mysql-server python-mysqldb

安装如果失败则按照上篇博文raspbian_sources更换源
安装成功后直接结束,并未提示输入数据库密码

密码设置

参考:
sudo mysql -u root -p

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

plugin(加密方式)是unix_socket

运行如下三条命令:

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

远程访问

修改配置文件:/etc/mysql/mariadb.conf.d/50-server.cnf
注释掉bind-address项

只有这些仍然不够,我们只是开启了MySQL监听远程连接的选项,接下来需要给对应的MySQL账户分配权限,允许使用该账户远程连接到MySQL

查看账号信息:select User, host from mysql.user;

root账户中的host项是localhost表示该账号只能进行本地登录,我们需要修改权限,输入命令:

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

修改权限。%表示针对所有IP,password表示将用这个密码登录root用户,如果想只让某个IP段的主机连接,可以修改为

1
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.100.%' IDENTIFIED BY 'my-new-password' WITH GRANT OPTION;

注意:此时远程连接的密码可能与你在本地登录时的密码不同了,主要看你在IDENTIFIED BY后面给了什么密码
最后别忘了FLUSH PRIVILEGES;

重启数据库sudo /etc/init.d/mysql restart

如果这些都做完了,还是不能连接,可以看一下端口是不是被防火墙拦截了