1. 概要
Linux平台上推荐使用RPM包来安装Mysql
- MySQL - MySQL服务器。你需要该选项,除非你只想连接运行在另一台机器上的MySQL服务器。
- MySQL-client - MySQL 客户端程序,用于连接并操作Mysql服务器。
- MySQL-devel - 库和包含文件,如果你想要编译其它MySQL客户端,例如Perl模块,则需要安装该RPM包。
- MySQL-shared - 该软件包包含某些语言和应用程序需要动态装载的共享库(libmysqlclient.so*),使用MySQL。
- MySQL-bench - MySQL数据库服务器的基准和性能测试工具。
2. 搭建环境
工作环境 : 阿里云服务器ECS
操作系统 : CentOS7
3. 准备阶段
安装前先检查系统是否安装过mysql,这里用的是Centos7,注意CentOS 7 默认是安装mariadb所以如果不需要可以一并删除
# rpm -qa | grep mysql
# rpm -e 文件名字 --nodeps //有安装过就删除
# rpm -qa | grep mariadb
# rpm -e mariadb-libs-5.5.41-2.el7_0.x86_64 --nodeps //--nodeps 删除依赖
# whereis mysql
//清楚余项
# rm –rf /usr/lib64/mysql
# rm /etc/my.cnf
# rm /etc/init.d/mysqld
4. 安装阶段
增加用户组和用户mysql
# groupadd mysql
# useradd -r -g mysql mysql
下载RPM文件,可在Mysql官网上选择版本
# wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
安装Mysql
# sudo yum localinstall mysql57-community-release-el7-11.noarch.rpm -y
# sudo yum install mysql-server -y
5. 配置阶段
启动Mysq服务
# sudo service mysqld start
查看状态,看到绿色的
active
表示正常
# sudo service mysqld status
Mysql刚安装完时是没有密码的,执行下面命令后获取如图临时密码复制下
# sudo grep 'temporary password' /var/log/mysqld.log
# mysql -uroot -p ---临时密码
修改Mysql密码
注意这里密码设置过于简单会报错:ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
原因是mysql5.7 是默认安装validate_password
插件会对密码进行复杂度校验;不需要的话设置
mysql> set global validate_password_policy=0;
mysql> set global validate_password_length=1;
mysql> alter user 'root'@'localhost' identified by '你的密码';
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 |
6. 远程访问设置
首先要开放3306端口号,远程访问 MySQL, 需开放默认端口号 3306(想通过公网访问阿里云需要对安全组规则进行配置)
# firewall-cmd --permanent --zone=public --add-port=3306/tcp
# firewall-cmd --permanent --zone=public --add-port=3306/udp
# firewall-cmd --reload //执行使最新的防火墙设置规则生效
登入Mysql设置远程访问密码
mysql> use mysql;
mysql> update user set password=password('123456') where user='root';
//Mysql5.7 后没有了password这个字段,要换成authentication_string字段
mysql> update user set host='%' where user='root' and host='localhost';
mysql> flush privileges;