树莓派安装Mariadb及初始化、远程访问设置

树莓派安装Mariadb及初始化、远程访问设置

一、安装

sudo apt-get install mariadb-server   #服务器
sudo apt-get install mariadb-client   #客户端,服务器可不安装

二、启动Mariadb

service mariadb start

或者

systemctl start mariadb

设置开机启动

chkconfig mariadb on

或者

systemctl enable mariadb

三、初始化设置

mysql_secure_installation

首先是设置密码,会提示先输入密码
Enter current password for root (enter for none):<–初次运行直接回车
设置密码
Set root password? [Y/n] <– 是否设置root用户密码,输入y并回车或直接回车
New password: <– 设置root用户的密码
Re-enter new password: <– 再输入一次你设置的密码
其他配置
Remove anonymous users? [Y/n] <– 是否删除匿名用户,回车
Disallow root login remotely? [Y/n] <–是否禁止root远程登录,回车,
Remove test database and access to it? [Y/n] <– 是否删除test数据库,回车
Reload privilege tables now? [Y/n] <– 是否重新加载权限表,回车
初始化Mariadb完成,接下来测试登录
sudo mysql -uroot -p [回车,之后输入密码]

四、配置字符集

客户端设置

vim /etc/my.cnf.d/mysql-clients.cnf
[mysql]
default-character-set=utf8

服务器端设置

vim /etc/my.cnf.d/server.cnf
[mysqld]
init_connect='SET collation_connection = utf8_general_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_general_ci
skip-character-set-client-handshake
#开启慢查询
slow_query_log = ON
slow_query_log_file = /usr/local/mysql/data/slow.log
long_query_time = 1

全部配置完成,重启mariadb

systemctl restart mariadb

之后进入MariaDB查看字符集

mysql> show variables like "%character%";show variables like "%collation%";

显示为

MariaDB [(none)]> show variables like "%character%";show variables like "%collation%";
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

+----------------------+-----------------+
| Variable_name        | Value           |
+----------------------+-----------------+
| collation_connection | utf8_general_ci |
| collation_database   | utf8_general_ci |
| collation_server     | utf8_general_ci |
+----------------------+-----------------+
3 rows in set (0.00 sec)

五、添加用户并配置权限

创建用户命令

mysql>create user username@localhost identified by 'password';

授予外网登陆权限,但不能二级授权;

mysql>grant all privileges on *.* to username@'%' identified by 'password';

授予权限并且可以二次授权

mysql>grant all privileges on *.* to username@'hostname' identified by 'password' with grant option;

其中只授予部分权限把 其中 all privileges或者all改为:
select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file其中一部分。
刷新权限

flush privileges;

(参考原文链接:Mariadb安装之后的各种设置

六、设置远程访问权限

select User, host from mysql.user;

查看用户账号信息:
在这里插入图片描述
root账户中的host项是localhost表示该账号只能进行本地登录,我们需要修改权限:

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

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

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

注意:此时远程连接的密码可能与你在本地登录时的密码不同了,主要看你在IDENTIFIED BY后面给了什么密码
具体的请参考GRANT命令
刷新权限

FLUSH PRIVILEGES;

再看看用户信息:
在这里插入图片描述
这个时候发现相比之前多了一项,它的host项是%,这个时候说明配置成功了,我们可以用该账号进行远程访问了。
重启远程服务器

service mysql restart

参考原文链接:为 MariaDB 配置远程访问权限

七、修改远程访问配置(重点)

查了很多论坛都是修改/etc/mysql/my.cnf文件,找到bind-address = 127.0.0.1 把 127.0.0.1 改成 0.0.0.0,但在最新的树莓派系统(2021-03-04-raspios-buster-armhf-full)中,/etc/mysql/my.cnf文件没有该代码
在这里插入图片描述
最终/etc/mysql/mariadb.conf.d目录下的 50-server.cnf 文件找到了bind-address = 127.0.0.1 并把它改成0.0.0.0
在这里插入图片描述

终于解决了远程访问树莓派mysql默认只监听本地ip访问的问题。
(参考原文:raspberry pi(树莓派)上安装和使用MySQL,并通过Navicat远程访问配置脱坑记录

八、设置大小写敏感

mariadb默认对大小写敏感,修改配置文件可取消大小写敏感

sudo vi /etc/MySQL/my.cnf  #参考第七条,修改/etc/mysql/mariadb.conf.d/50-server.cnf 配置文件

在[mysqld]下面添加:
lower_case_table_names = 1
重启mariadb服务即可。(注意,修改一定要在创建数据库之前,对修改之前创建的数据库无效)

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值