今天大清早来了接到要安装mysql的任务,以前没装过,装完了特此记录
1.卸载已有的mysql
系统中可能之前已经安装了mysql,先检查一下
# rpm -qa|grep -i mysql
mysql57-community-release-el7-7.noarch
mysql-community-server-5.7.25-1.el7.x86_64
mysql-community-libs-5.7.25-1.el7.x86_64
mysql-community-client-5.7.25-1.el7.x86_64
mysql-community-common-5.7.25-1.el7.x86_64
mysql-community-libs-compat-5.7.25-1.el7.x86_64
mysql-community-devel-5.7.25-1.el7.x86_64
下方显示的是已经安装的mysql软件,通过下方的命令直接卸载即可
# yum remove '软件名'
2.安装mysql的repo源
CentOs7默认的yum源中没有mysql,需要先进行安装。
# wget http://repo.mysql.com//mysql57-community-release-el7-7.noarch.rpm
# rpm -ivh mysql57-community-release-el7-7.noarch.rpm
安装之后到/etc/yum.repos.d目录中查看,是否有mysql-community.repo和mysql-community-source.repo两个文件。
3.安装mysql
执行以下命令完成mysql的安装
# yum install mysql-server
# yum install mysql-devel
# yum install mysql
安装完成之后重新检查一下是否安装了的mysql软件
# rpm -qa|grep -i mysql
4.初始化设置
先介绍服务的启动命令
# service mysqld status 查看mysql当前的状态
# service mysqld stop 停止mysql
# service mysqld restart 重启mysql
# service mysqld start 启动mysql
直接执行service myslqd start启动mysql,启动后由于不知道root的密码,执行忘记密码的操作
修改/etc/my.cnf文件,在最后加上以下内容
skip-grant-tables
执行完后重启mysql服务,执行serviece mysqld restart,之后即可登录:
# mysql -u root
登陆后需要修改密码
mysql>use mysql;
mysql>update mysql.user set authentication_string=password('密码') where user='root';
mysql>flush privileges;
mysql>exit;
注:此处设置的密码尽量包括数字,字母,特殊符号,否则会引起一些问题,后文第7步会有介绍
一切执行完成后,恢复/etc/my.cnf文件。
5.开放外网端口
控制台→云服务器ESC→在对应服务器的最后更多的选项中选择网络和安全组中的安全组配置→配置规则→添加安全组规则
具体设置内容如下:
6.用navicate连接
尝试用navicate连接,报如下错误:
解决办法:
在服务器通过mysql -u root -p命令连接mysql,执行如下操作:
mysql>use mysql;
mysql>select 'host' from user where user='root';
mysql>update user set host = '%' where user ='root';
mysql>flush privileges;
mysql>select 'host' from user where user='root';
执行完毕后再次测试即可正常连接,依旧不行的话重启mysql服务即可。
7. 第6步中可能会存在的问题
由于第一次输入的密码相对简单,在第6不执行use mysql; 的时候可能会有如下报错:
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
原因:密码过于简单了,用字母+数字+特殊字符混合一个密码。
mysql> SET PASSWORD = PASSWORD('密码');
之后再执行use mysql; 即可正常执行第6后边的所有操作。
注意:如果只想设置简单密码需要修改两个全局参数:
mysql> set global validate_password_policy=0;
mysql> set global validate_password_length=1;