一、检查系统中是否装有Mysql (否则直接执行第三步,下载安装)
rpm -qa | grepmysql
或者:rpm -qa | grep -imysql
// 这个命令就会查看该操作系统上是否已经安装了mysql数据库
[zcp@localhost ~]$ rpm -qa | grep mysql mysql-libs-5.1.71-1.el6.x86_64
很明显小编的系统里已经安装了mysql5.1.71
二、删除卸载原有的Mysql
通过 rpm-e
命令 或者 rpm -e--nodeps
mysql-libs-5.1.71-1.el6.x86_64
名称版本号
[zcp@localhost ~]$ rpm -e mysql // 普通删除模式 [zcp@localhost ~]$ rpm -e --nodeps mysql // 强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除
如果你不是通过rpm
安装的肯定返回错误,说明没有rpm包。
error: package mysql is not installed
如果是yum
安装的我们使用下面的命令:
yum -y remove mysql-libs-5.1.71-1.el6.x86_64
如果返回
说明你需要root
权限,在终端,输入su
回车,然后输入密码回车就行了!密码是不显示的。
[zcp@localhost ~]$ su Password:
再次执行删除命令
yum -y remove mysql-libs-5.1.71-1.el6.x86_64
最后返回如果看到下面的信息:
...... 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@localhost ~]# rpm -qa | grep mysql [root@localhost ~]#
三、给CentOS添加rpm源,并且选择较新的源命令(未安装过mysql的直接利用在线源下载community版本安装)
首先需要先更新yum指令,
更新yum源到最新
shell> yum update
(CentOS7的yum源中默认好像是没有mysql的。为了解决这个问题,我们要先下载mysql的repository源 mysql57-community-release-el7-11.noarch.rpm,然后通过源来在线安装server)
或者直接下载 server
wget https:/cdn.mysql.com/Downloads/MySQL-5.7/mysql-community-server-5.7.19-1.el7.x86_64.rpm
(2017-09-18 最新版本地址)
# wget https:/repo.mysql.com/mysql57-community-release-el7-11.noarch.rpm
# yum localinstall mysql57-community-release-el7-11.noarch.rpm
=====================这部分不需要====start=====================================
# yum repolist all | grep mysql
# yum-config-manager --disable mysql55-community
# yum-config-manager --disable mysql56-community
# yum-config-manager --enable mysql57-community-dmr
============================这部分不需要=====end====================================
# yum repolist enabled | grep mysql
检查mysql源是否安装成功
![]()
看到上图所示表示安装成功。 可以修改 vim /etc/yum.repos.d/mysql-community.repo
源,改变默认安装的mysql版本。比如要安装5.6版本,将5.7源的enabled=1改成enabled=0。然后再将5.6源的enabled=0改成enabled=1即可。改完之后的效果如下所示:
四、安装mysql 服务
# yum install mysql-community-server
一直选择“y”
Install 4 Package(s) Total download size: 169 M Installed size: 842 M Is this ok [y/N]: y
在线下载较慢
五、启动mysql
# service mysqld start
查看MySQL的启动状态
六、开启自启动命令:
systemctl enable mysqld
七、mysql安全设置命令:
mysql安装完成之后,在/var/log/mysqld.log文件中给root生成了一个默认密码。通过下面的方式找到root默认密码,然后登录mysql进行修改:
# mysql_secure_installation
八、关于用户的安全策略及配置
通过msyql环境变量可以查看密码策略的相关信息:
![]()
validate_password_policy:密码策略,默认为MEDIUM策略
validate_password_dictionary_file:密码策略文件,策略为STRONG才需要
validate_password_length:密码最少长度
validate_password_mixed_case_count:大小写字符长度,至少1个
validate_password_number_count :数字至少1个
validate_password_special_char_count:特殊字符至少1个
上述参数是默认策略MEDIUM的密码检查规则。 共有以下几种密码策略:
策略 | 检查规则 |
---|---|
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 |
MySQL官网密码策略详细说明:http://dev.mysql.com/doc/refman/5.7/en/validate-password-options-variables.html#sysvar_validate_password_policy
修改密码策略
=======================设置======不需要密码策略================================
如果不需要密码策略,添加my.cnf(默认路径/etc/my.cnf)文件中添加如下配置禁用即可:
=======================设置======某个级别的密码策略================================
在/etc/my.cnf文件添加validate_password_policy配置,指定密码策略
# 选择0(LOW),1(MEDIUM),2(STRONG)其中一种,选择2需要提供密码字典文件 (默认为MEDIUM)
=========================================================================================
重新启动mysql服务使配置生效:
九、更改或添加远程登陆用户
默认只允许root帐户在本地登录,如果要在其它机器上连接mysql,必须修改root允许远程连接,更改当前用户,使之具有远程登陆权限:
mysql> update user set host ='%' where user='root';
mysql> flush privileges;
或者添加一个允许远程连接的帐户,为了安全起见,我添加一个新的帐户:
mysql> GRANT ALL PRIVILEGES ON *.* TO 'yangxin'@'%'
IDENTIFIED BY 'Yangxin0917!' WITH GRANTOPTION;
十、配置默认编码为utf8
修改/etc/my.cnf配置文件,在[mysqld]下添加编码配置,如下所示:
重新启动mysql服务,查看数据库默认编码如下所示:![]()
默认配置文件路径:
配置文件:/etc/my.cnf
日志文件:/var/log//var/log/mysqld.log
服务启动脚本:/usr/lib/systemd/system/mysqld.service
socket文件:/var/run/mysqld/mysqld.pid
十一、root用户无密码登录(需要修改配置文件,忘掉密码可以用此方法):
==========================================
==========================================
==========================================
关于登录(提供一种无密码登陆方式,可以不用看================================ ==========
==============================================================================================================================
#mysql -uroot
Access denied for user 'root'@'localhost' (using password: NO) denied for user 'root'@'localhost' (using password: NO)
# service mysqld stop
#cd /usr/bin/
# mysqld_safe --user=mysql --skip-grant-tables
update user set authentication_string = password('root') where user = 'root';
# service mysqld restart
You must reset your password using ALTER USER statement before executing this statement.
1.set password = password('rootABC123_');
新版本必须包含 数字,大写字母,小写字母,特殊符号(比如下划线)
2. ALTER USER 'root'@'%' PASSWORD EXPIRE NEVER;
3.flush privileges;
4.mysql -uroot -p'rootABC123_' ;