MySql服务器安装与配置(rpm)教程
一、检查系统中是否装有Mysql
rpm -qa | grep mysql 或者:rpm -qa | grep -i mysql // 这个命令就会查看该操作系统上是否已经安装了mysql数据库
[root@peipei3514 ~]# rpm -qa | grep -i mysql mysql-libs-5.1.71-1.el6.x86_64
二、删除卸载原有的Mysql
通过 rpm -e 命令 或者 rpm -e –nodeps 命令来卸载掉,注意两个命令后面是你的mysql-libs-5.1.71-1.el6.x86_64名称版本号
[root@peipei3514 ~]# rpm -e mysql // 普通删除模式 [root@peipei3514 ~]# rpm -e --nodeps mysql // 强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除
如果你不是通过rpm安装的肯定返回错误,说明没有rpm包。
[root@peipei3514 ~]# rpm -e --nodeps mysql 错误:未安装软件包 mysql
如果是yum安装的我们使用下面的命令:
[root@peipei3514 ~]# yum -y remove mysql-libs-5.1.71-1.el6.x86_64
如果返回 You need to be root to perform this command。说明你需要root权限,在终端,输入su回车, 然后输入密码回车就行了!密码是不显示的。
[root@peipei3514 ~]# su Password:
再次执行删除命令,最后返回如果看到下面的信息:
...... Removed: mysql-libs.x86_64 0:5.1.71-1.el6 Dependency Removed: cronie.x86_64 0:1.4.4-12.el6 cronie-anacron.x86_64 0:1.4.4-12.el6 crontabs.noarch 0:1.10-33.el6 postfix.x86_64 2:2.6.6-2.2.el6_1 sysstat.x86_64 0:9.0.4-22.el6 Complete!
删除成功!
再次查看
[root@peipei3514 ~]# rpm -qa | grep mysql [root@peipei3514 ~]#
三、给CentOS添加rpm源
[root@peipei3514 ~]# cd /usr/local/src/ [root@peipei3514 src]# wget https://repo.mysql.com//mysql57-community-release-el7-11.noarch.rpm [root@peipei3514 src]# yum localinstall mysql57-community-release-el7-11.noarch.rpm -y
四、安装 mysql 服务
[root@peipei3514 src]# yum search mysql [root@peipei3514 src]# yum install mysql-community-server.x86_64 -y
五、启动
[root@peipei3514 src]# systemctl start mysqld [root@peipei3514 src]# systemctl status mysqld ● mysqld.service - MySQL Server Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled) Active: active (running) since 日 2017-12-24 13:38:24 CST; 41min ago Docs: man:mysqld(8) https://dev.mysql.com/doc/refman/en/using-systemd.html Process: 10514 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS) Process: 10441 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS) Main PID: 10517 (mysqld) CGroup: /system.slice/mysqld.service └─10517 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid 12月 24 13:38:18 peipei3514 systemd[1]: Starting MySQL Server... 12月 24 13:38:24 peipei3514 systemd[1]: Started MySQL Server.
六、查看 mysql 随机密码
[root@peipei3514 src]# vim /var/log/mysqld.log # 在日志文件中找到这样一行 2017-12-24T05:38:19.332201Z 1 [Note] A temporary password is generated for root@localhost: DGAreee6kM-E
注:Mysql 5.6及以后版本出处于安全考虑,root密码不为空。第一次启动后会有个初始化的过程,会产生root账户的随机密码。在/var/log/mysqld.log 。登陆上过后,进行正常操作会受限,提示你必须修改密码后才能进行操作。
七、初始化设置
[root@peipei3514 src]# mysql_secure_installation
运行mysql_secure_installation会执行几个设置:
为root用户设置密码(可以先看第八步); 删除匿名账号; 取消root用户远程登录; 删除test库和对test库的访问权限; 刷新授权表使修改生效。
通过这几项的设置能够提高mysql库的安全。建议生产环境中mysql安装这完成后一定要运行一次mysql_secure_installation
八、设置远程登录
1、设置 mysql 远程登录
mysql> GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION; Query OK, 0 rows affected, 1 warning (0.00 sec) mysql> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.00 sec)
[root@peipei3514 src]# vim /etc/my.cnf [client] port=3306
2、开放防火墙端口
[root@peipei3514 src]# firewall-cmd --add-port=3306/tcp --permanent success [root@peipei3514 src]# firewall-cmd --reload success
九、修改密码策略
查阅官方文档后发现有以下三种密码策略:
Policy | Tests Performed |
---|---|
0 or LOW | Length |
1 or MEDIUM | Length; numeric, lowercase/uppercase, and special characters |
2 or STRONG | Length; numeric, lowercase/uppercase, and special characters; dictionary file |
当前密码策略默认为1,也就是 MEDIUM:
mysql> show VARIABLES like "%password%"; +---------------------------------------+--------+ | Variable_name | Value | +---------------------------------------+--------+ | default_password_lifetime | 0 | | disconnect_on_expired_password | ON | | log_builtin_as_identified_by_password | OFF | | mysql_native_password_proxy_users | OFF | | old_passwords | 0 | | report_password | | | sha256_password_proxy_users | OFF | | validate_password_check_user_name | OFF | | validate_password_dictionary_file | | | validate_password_length | 8 | | validate_password_mixed_case_count | 1 | | validate_password_number_count | 1 | | validate_password_policy | MEDIUM | | validate_password_special_char_count | 1 | +---------------------------------------+--------+ 14 rows in set (0.02 sec)
所以你更改密码的策略是 数字 小写字母 大写字母 特殊字符 长度至少8位 。
接下来修改默认密码策略(当然实际环境是不推荐修改为更低安全策略的):
mysql> set global validate_password_policy = 0; Query OK, 0 rows affected (0.00 sec)
现在设置完默认密码策略后,就只有密码长度限制 了。默认为字符长度至少8位。其中:
validate_password_number_count:指定了密码中数据的长度; validate_password_special_char_count:指定了密码中特殊字符的长度; validate_password_mixed_case_count:指定了密码中大小字母的长度。
这些参数,默认值均为1,所以validate_password_length最小值为4,如果你显性指定validate_password_length的值小于4,尽管不会报错,但validate_password_length的值将设为4。
mysql> set global validate_password_length = 3; Query OK, 0 rows affected (0.00 sec) mysql> show VARIABLES like "validate_password_length"; +--------------------------+-------+ | Variable_name | Value | +--------------------------+-------+ | validate_password_length | 4 | +--------------------------+-------+ 1 row in set (0.00 sec)
如果修改了validate_password_number_count,validate_password_special_char_count,validate_password_mixed_case_count中任何一个值,则validate_password_length将进行动态修改。
MySQL 5.7 默认安装了 validate_password 插件。 所以多了以上步骤。
附1:通过my.cnf 配置文件设置密码策略的级别
[mysqld] validate_password_policy=2
最后一行 validate_password_policy 设置mysql启动的时候密码策略级别。 如果设置为3 ,那么需要指定字典文件。
当然你也可以通过 my.cnf 配置文件关闭 validate_password 插件。
只需要添加一行:
validate_password = off
编辑完配置文件后,重启mysqld服务即可生效。
mysql> show VARIABLES like "validate_password%"; +-----------------+---------+ | Variable_name | Value | |-----------------+---------| +-----------------+---------+ 0 rows in set Time: 0.008s
关闭validate_password插件后,就没有了validate_password的一些参数变量。
附2:修改 mysql 监听在 IPv4
MySQL 新版本默认监听在IPv6的地址族上。
[root@peipei3514 src]# netstat -tunpl -A inet6 Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp6 0 0 :::22 :::* LISTEN 991/sshd tcp6 0 0 ::1:25 :::* LISTEN 1093/master tcp6 0 0 :::3306 :::* LISTEN 10640/mysqld udp6 0 0 :::16101 :::* 804/dhclient udp6 0 0 ::1:323 :::* 644/chronyd
更改为监听IPv4地址族,修改 my.cnf 添加一行配置:
bind-address = 0.0.0.0
重启mysqld 即可。
推荐阅读
-
MySql服务器安装与配置(rpm)教程
-
php与XML、XSLT、Mysql的结合运用,安装篇_PHP教程
-
通过rpm包安装、配置及卸载mysql_MySQL
-
MySQL5.7.3.0安装配置图解教程
-
CentOS7.3下mysql 8.0.13安装配置方法图文教程
-
Tomcat服务器安装配置教程(win7)
-
php环境配置 php5 mysql5 apache2 phpmyadmin安装与配置
-
MySQL SUSE SLES11安装与配置笔记实操
-
Windows 环境下的PHP5 与 Apache 服务器的配置_PHP教程
-
CentOS 6.6安装配置LAMP服务器(Apache+PHP5+MySQL)