MariaDB-10.4版本开始,mysql.user不再是一张表而是一个视图,但同时也提供了一个新表mysql.global_priv来替代mysql.user
- 有三个root账户,主机默认用的好像是127.0.0.1的,改密码需要把他改掉
MySQL/MariaDB的权限用用户名和主机名结合定义,即USER@HOST。如果不指定主机名,则使用默认的主机名%(授予用户访问权限而不管主机名)所以对三个root的理解可以为下:
root@127.0.0.1 表示本机的root用户可以登陆,127.0.0.1是本地回路的ip地址
root@::1 表示本机的root用户可以登陆,::1是ipv6本机地址,相当于127.0.0.1的ipv6
root@localhost 表示只有本机root用户可以登陆
- 改密码
use mysql;
select * from global_priv;
默认情况下,root用户通过"unix_socket"身份验证插件进行身份验证。需要将此模式改为"mysql_native_password"
ALTER USER 'root'@'localhost' IDENTIFIED VIA mysql_native_password;
ALTER USER `root`@`localhost` IDENTIFIED BY 'xxx密码';
flush privileges;
- 改权限范围
UPDATE mysql.global_priv SET Host='%' WHERE User='root';
flush privileges;
报错提示ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY'不予理会
- linux下查看启动配置文件是哪个:
运行 mysqld --help --verbose | grep -A 1 "Default options" 来查看 MariaDB 默认加载的配置文件路径。
- 导入SQL文件时报错(在执行创建表或者增加字段时,发现row size长度过长,会导致出现以下错误)
ERROR 1118 (42000) at line 8299: Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
执行以下SQL语句,查看严格模式是否开启
show variables like '%innodb_strict_mode%';
如果提示已开启则需要关闭(my.ini)
[mysqld]
innodb_strict_mode=0
安装教程(都在bin目录):
mysqld.exe --install MariaDB
如报错去.err文件查看什么错误,如果是data目录没配置则
mysql_install_db.exe --datadir=…/data
linux使用yum安装10.4,首先vi /etc/yum.repos.d/mariadb.repo
,在编辑器中添加以下内容:
[mariadb]
name = MariaDB
baseurl = http://mirrors.aliyun.com/mariadb/yum/10.4.31/centos74-amd64
gpgkey=https://mirrors.aliyun.com/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck=1
接着更新缓存yum update
、安装yum install MariaDB-server MariaDB-client
、启动systemctl start mariadb
、开机自启systemctl enable mariadb
、运行安全性脚本,以提供更好的默认安全性设置mysql_secure_installation
,最后mysql -V