Mysql MariaDB安装
1、安装
本人使用的是CentOS 7 ,默认yum安装,但默认yum安装版本有点低,可根据需要选择升级,我这里选择先升级再安装。
更新yum
//更新yum包 yum -y update
配置yum源
vim /etc/yum.repos.d/MariaDB.repo
打开的文本中输入以下内容:
[mariadb] name = MariaDB baseurl = http://yum.mariadb.org/10.1/rhel7-amd64 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1
目前的稳定版本为10.1,再安装的时候可去这里查询https://downloads.mariadb.org/mariadb/repositories/#mirror=tuna&distro=CentOS&distro_release=centos7-amd64--centos7
保存并退出,执行安装命令:
//使用配置的yum安装 yum install MariaDB-server -y
如果使用系统自带yum安装,请执行以下命令:
//安装server yum install mariadb-server mariadb -y
注意:这里我仅安装Server,暂不安装Client,如果有需要安,可以执行以下命令:
//配置yum源安装 yum -y install MariaDB-server MariaDB-client //使用默认安装 yum -y install mariadb*
2、服务
安装完成后,我们需要执行以下命令:
//启动服务 systemctl start mariadb //开机启动 systemctl enable mariadb //运行状态 systemctl status mariadb
3、配置
现在我们需要进行一些基本的安全设置。执行命令:
mysql_secure_installation
执行上边的命令,进入设置引导
//1、确认密码 Enter current password for root (enter for none): //直接回车 //2、设置新密码 Set root password? [Y/n] y //3、移出匿名用户 Remove anonymous users? [Y/n] y //4、禁用远程登陆 Disallow root login remotely? [Y/n] y //5、移出测试数据库 Remove test database and access to it? [Y/n] y //6、重新加载权限 Reload privilege tables now? [Y/n] y Thanks for using MariaDB! 结束
中文乱码配置:
//打开配置 vim /etc/my.cnf
在结尾处追加以下命令:
[client] default-character-set=utf8 [mysql] default-character-set=utf8 [mysqld] character-set-server=utf8
重启服务:
systemctl restart mariadb
登录查看效果:
//登录 mysql -u root -p //查看当前数据默认字符集 show variables like "%character%"; show variables like "%collation%";
4、用户及权限
//查看版本 mysql -V //登录 mysql -u root -p //重启 systemctl restart mariadb //停止 systemctl stop mariadb.service
//创建用户 CREATE USER 'testuser'@'%' IDENTIFIED BY '123456'; //用户授权 GRANT select,insert ON test.* TO 'testuser'@'%'; //创建用户并授权 GRANT select ON test.* TO 'testuser'@'%' IDENTIFIED BY '123456'; //ALL PRIVILEGES 表示所有权限 GRANT ALL PRIVILEGES ON test.* TO 'testuser'@'%' IDENTIFIED BY '0123456789' WITH GRANT OPTION; //回收权限 REVOKE select ON test.* From 'testuser'@'%'; //删除用户 DROP USER 'testuser'@'%'; //查看用户权限 SHOW GRANTS FOR testuser; //查看用户授权表 select * from mysql.user //修改密码 UPDATE mysql.user SET password=password("0123456789") WHERE user='testuser'; //刷新 FLUSH PRIVILEGES;
说明:
用户账号:'username'@'host'
禁止检查主机名:在my.cnf配置文件中的[mysqld]段添加skip_name_resolve = ON 一般都得添加此选项以提升性能
创建用户账号:CREATE USER 'username'@'host' [IDENTIFIED BY 'password'];
例如:create user 'testuser'@'192.168.%.%' identified by 'testpass'; 记得刷新用户授权表flush privileges;
删除用户账号:DROP USER 'user'@'host' [, user@host] ...
例如:drop user 'testuser'@'192.168.%.%';
查看用户授权表命令:select * from mysql.user;
授权:GRANT priv_type,... ON [object_type] db_name.tbl_name TO 'user'@'host' [IDENTIFIED BY 'password'];
例如:grant select,insert on test1.students to 'testuser'@'192.168.%.%';
查看指定用户所获得的授权:SHOW GRANTS FOR CURRENT_USER;
回收权限:REVOKE priv_type, ... ON db_name.tbl_name FROM 'user'@'host';
例如:revoke insert on test1.students from 'testuser'@'192.168.%.%';
注意:MariaDB服务进程启动时,会读取mysql库的所有授权表至内存中
- GRANT或REVOKE命令等执行的权限操作会保存于表中,MariaDB此时一般会自动重读授权表,权限修改会立即生效
- 其它方式实现的权限修改,要想生效,必须手动运行FLUSH PRIVILEGES命令
5、其它
升级说明:
如果你之前已进行过安装,想要进行升级,可先进行卸载,再重复上述步骤安装,注意数据库的备份。
//停止服务 systemctl stop mariadb //移除包 yum remove mariadb-server mariadb mariadb-libs //清理 yum clean all
常用操作:
//使用数据库 use database; //查看所有数据库 show databases; //删除名字为dbname的数据库 drop database dbname;
设置远程登陆:
//打开配置 vim /etc/my.cnf //设置以下节点 [mysqld] port=25513 //重启 systemctl restart mariadb //设置防火墙 firewall-cmd --zone=public --add-port=3306/tcp --permanent //加载设置 firewall-cmd --reload