前言
(一)安装mariadb
通过yum 命令安装
1
yum install mariadb-server
安装完成MariaDB,首先启动MariaDB
1
systemctl start mariadb
centos 7 以下使用
service
linux deploy 中不能使用这两种,报错:Running in chroot, ignoring request.
分析: 查看mariadb.service 服务
cat -n /usr/lib/systemd/system/mariadb.service
1
2
3
4
535 ExecStartPre=/usr/libexec/mariadb-prepare-db-dir %n
36 # Note: we set --basedir to prevent probes that might trigger SELinux alarms,
37 # per bug #547485
38 ExecStart=/usr/bin/mysqld_safe --basedir=/usr
39 ExecStartPost=/usr/libexec/mariadb-wait-ready $MAINPID可以看出启动mariadb要启动mariadb-prepare-db-di
1
/usr/libexec/mariadb-prepare-db-di
解决
如果执行出现文件夹mariadb-prepare-db-di 出现失败
1
2
3
4
5[root@localhost ~]
Running in chroot, ignoring request.
Running in chroot, ignoring request.
Database MariaDB is not initialized, but the directory /var/lib/mysql is not empty, so initialization cannot be done.
Make sure the /var/lib/mysql is empty before running mariadb-prepare-db-dir.需要将/var/lib/mysql里面的文件删除然后再执行
1
/usr/libexec/mariadb-prepare-db-di
查找mysqld_safe路径
1
2whereis mysqld_safe
mysqld_safe: /usr/bin/mysqld_safe /usr/share/man/man1/mysqld_safe.1.gz使用mysqld_ safe启动mysql
1
/usr/bin/mysqld_safe --watch
mysql在启动时是需要”socket“权限的,只有root用户有这个权限。
1、更改mysql配置文件里的启动用户,把mysql改为root。但是生产环境不建议这么做
2、将MySQL用户赋予socket权限1
sudo usermod -a -G aid_inet,aid_net_raw mysql
==注意:每次刷新配置就
要为MySQL重新赋予socket权限==
设置开机自启
1
systemctl enable mariadb
(二)接下来进行MariaDB的相关简单配置
1
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: <– 再输入一次你设置的root密码
其他配置
Remove anonymous users? [Y/n] <– 是否删除匿名用户,回车
Disallow root login remotely? [Y/n] <–是否禁止root远程登录,回车(如果生产环境建议不开放root远程登录,危险性高),
Remove test database and access to it? [Y/n] <– 是否删除test数据库,回车
Reload privilege tables now? [Y/n] <– 是否重新加载权限表,回车
3、初始化MariaDB完成,接下来测试root登录
1
mysql -uroot -p
输入root密码登录mysql。
(三)配置MariaDB的字符集
一、修改配置文件/etc/my.cnf
1
vi /etc/my.cnf
在[mysqld]标签下socket=/var/lib/mysql/mysql.sock下方添加
1
2
3
4
5
6#character
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
二、配置文件/etc/my.cnf.d/client.cnf
1
vi /etc/my.cnf.d/client.cnf
在[client]下添加
1
2#character
default-character-set=utf8
三、配置文件/etc/my.cnf.d/mysql-clients.cnf
1
vi /etc/my.cnf.d/mysql-clients.cnf
在[mysql]中添加
1
2#character
default-character-set=utf8
四、重启MariaDB服务
(四)添加用户
1、创建用户
语法:CREATE USER ‘username’@’host’ IDENTIFIED BY ‘password’;
说明:
username:你将创建的指定用户名
host:指定该用户在哪个主机上可以登陆。如果是本地用户可用localhost,如果想让该用户可以从任意远程主机登陆,可以使用通配符
%。
password:该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器
参照列子:
1
2
3
4
5CREATE USER 'dog'@'localhost' IDENTIFIED BY '123456';
CREATE USER 'pig'@'192.168.1.101_' IDENDIFIED BY '123456';
CREATE USER 'pig'@'%' IDENTIFIED BY '123456';
CREATE USER 'pig'@'%' IDENTIFIED BY '';
CREATE USER 'pig'@'%';2、授权新建用户的可执行权限:
命令:
1
GRANT privileges ON databasename.tablename TO 'username'@'host'
五、查看字符集
1
mysql -uroot -p
登录mariadb
查看字符集
1
show variables like "%character%";show variables like "%collation%";
(四)新增数据库用户
1、创建用户
语法:
1
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
说明:
username:你将创建的指定用户名
host:指定该用户在哪个主机上可以登陆。如果是本地用户可用localhost,如果想让该用户可以从任意远程主机登陆,可以使用通配符%。
password:该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器
参照列子:
1
2
3
4
5CREATE USER 'dog'@'localhost' IDENTIFIED BY '123456';
CREATE USER 'pig'@'192.168.1.101_' IDENDIFIED BY '123456';
CREATE USER 'pig'@'%' IDENTIFIED BY '123456';
CREATE USER 'pig'@'%' IDENTIFIED BY '';
CREATE USER 'pig'@'%';
2、授权新建用户的可执行权限:
命令:
1
GRANT privileges ON databasename.tablename TO 'username'@'host'
说明:
privileges:用户的操作权限,如SELECT,INSERT,UPDATE等,如果要授予所有的权限则使用ALL
databasename:数据库名
tablename:表名,如果要授予该用户对所有数据库和表的相应操作权限则可用表示,如.*
例子:
1
2
3GRANT SELECT, INSERT ON test.user TO 'pig'@'%';
GRANT ALL ON *.* TO 'pig'@'%';
GRANT ALL ON maindataplus.* TO 'pig'@'%';
注意:
用以上命令授权的用户不能给其它新建用户授权,如果想让该用户可以授权给其他用户,用以下命令:
注意:
用以上命令授权的用户不能给其它新建用户授权,如果想让该用户可以授权给其他用户,用以下命令:
1
grant all privileges on *.* to lvdou@'%' identified by 'lvdou' with grant option;
3.设置与更改用户密码
命令:
1
SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');
如果是当前登陆用户用:
1
SET PASSWORD = PASSWORD("newpassword");
或者
1
SET PASSWORD FOR 'pig'@'%' = PASSWORD("123456");
撤销用户权限
命令:1
REVOKE privilege ON databasename.tablename FROM 'username'@'host';
说明:
privilege, databasename, tablename:同授权部分
例子:
1
REVOKE SELECT ON *.* FROM 'pig'@'%';
注意:
假如你在给用户‘pig’@’%’授权的时候是这样的(或类似的):GRANT SELECT ON test.user TO ‘pig’@’%’,则在使用REVOKE SELECT ON . FROM ‘pig’@’%’;命令并不能撤销该用户对test数据库中user表的SELECT 操作。相反,如果授权使用的是GRANT SELECT ON . TO ‘pig’@’%’;则REVOKE SELECT ON test.user FROM ‘pig’@’%’;命令也不能撤销该用户对test数据库中user表的Select权限。
注意:
假如你在给用户‘pig’@’%’授权的时候是这样的(或类似的):GRANT SELECT ON test.user TO ‘pig’@’%’,则在使用REVOKE SELECT ON . FROM ‘pig’@’%’;命令并不能撤销该用户对test数据库中user表的SELECT 操作。相反,如果授权使用的是GRANT SELECT ON . TO ‘pig’@’%’;则REVOKE SELECT ON test.user FROM ‘pig’@’%’;命令也不能撤销该用户对test数据库中user表的Select权限。
具体信息可以用命令SHOW GRANTS FOR ‘pig’@’%’; 查看。
5.删除用户
命令:
1
DROP USER 'username'@'host';
推荐本站淘宝优惠价购买喜欢的宝贝:
本文链接:https://hqyman.cn/post/1606.html 非本站原创文章欢迎转载,原创文章需保留本站地址!
休息一下~~