创建MySql用户并给用户授权,设置mariadb默认编码,修改mariadb数据存储目录datadir

GRANT ALL PRIVILEGES ON 数据库名.* TO '用户名'@'登录地址' IDENTIFIED BY '密码' WITH GRANT OPTION;
FLUSH PRIVILEGES;

如果是仅限本机登录,登录地址为localhost,如果任意地址都可以登录,则为%

数据库名为*表示所有的数据库都有权限,也可以指定具体的某个表。

 #重要:

在centos7上安装 mariadb后,使用以上语句创建用户后登录失败。原因是mariadb不允许空密码的用户。需要删除掉数据库中密码为空字符串的用户,然后再flush下即可:

select host,user,password from mysql.user;

delete from mysql.user where password ='';

flush privileges;

退出当前session,重新登录下试试看,就可以工作了

#设置mariadb服务器的默认编码

SET character_set_server = 'utf8';
SET collation_server = 'utf8_general_ci';

 #设置数据存储目录datadir

启动mariadb后如果再想修改datadir目录的话会比较麻烦:

1.先停止服务

systemctl stop mariadb.service

2.拷贝目录:

rsync -av /var/lib/mysql /home/ksi/mariadb/data

3.拷贝配置文件并修改:

 cp /usr/share/mysql/my-huge.cnf /etc/my.cnf.d/

mv /etc/my.cnf.d/server.cnf /etc/my.cnf.d/server.cnf.bak

mv /etc/my.cnf.d/my-huge.cnf /etc/my.cnf.d/server.cnf

vim /etc/my.cnf.d/server.cnf

修改或增加datadir:

# The following options will be passed to all MySQL clients
[client]
#password = your_password
port = 3306
socket = /home/ksi/mariadb/mysql.sock

# Here follows entries for some specific programs

# The MySQL server
[mysqld]
#skip-grant-tables
datadir = /home/ksi/mariadb/data
character_set_server=utf8
port = 3306
socket = /home/ksi/mariadb/mysql.sock

保存退出。

3.修改目录权限:

chown -R mysql:mysql /home/ksi/mariadb

4.使用下列命令安装

mysql_install_db --user=mysql --datadir=/home/ksi/mariadb/data

5.修改启动脚本:

vim /usr/lib/systemd/system/mariadb.service

找到这个项:

ProtectHome

修改为false。保存退出。这一步如果不修改的话,会导致使用systemctl 启动mariadb服务失败。

6.启动mariadb:

systemctl start mariadb.service

7.检查datadir:

select @@datadir;

@@datadir
/home/ksi/mariadb/data/

mariadb 默认编码不是 utf-8,最大的单个事务大小设置过小,表名忽略大小写,启用慢查询日志等配置如下:

datadir=/home/mysql
slow_query_log=on
slow_query_log_file=/home/mysql/slow_query_log.log
long_query_time=10
max_allowed_packet=512M
character-set-server=utf8
collation-server=utf8_unicode_ci
lower_case_table_names=1


原文地址:https://www.cnblogs.com/sixiweb/p/2873172.html