这里centos为阿里云默认镜像。
一、卸载历史历史版本
1、检查是否有服务启动
# service mysqld status
2、停止mysql服务
# service mysqld stop
3、查看mysql历史安装组件
# rpm -qa|grep mysql
mysql-libs-5.1.71-1.el6.x86_64
4、卸载组件
# rpm -e --nodeps mysql-libs-5.1.71-1.el6.x86_64
二、安装MYSQL8
因为CentOS 7默认安装的数据库是Mariadb,所以使用YUM命令是无法安装MySQL的,只会更新Mariadb。使用rpm来进行安装。可以在mysql的repo源仓库右键复制指定版本的数据库。
1、进入usr目录
#cd cd /usr/local/
2、安装SQL
# wget http://repo.mysql.com/mysql80-community-release-el7-1.noarch.rpm
运行后本目录后下载mysql80-community-release-el7-1.noarch.rpm包
# sudo rpm -ivh mysql80-community-release-el7-1.noarch.rpm
安装完成后出现以下两文件:
使用yum安装mysql服务,这里--nogpgcheck指禁用GPG检查,不禁用可能因密钥文件不对导致无法安装。
# yum -y install mysql-community-server --nogpgcheck
显示Complete说明安装成功。
3、接下来修改mysql配置文件,根据自身需要修改端口等配置,示例见文底。(mysql8在linux下如果要修改大小写敏感需要在初次启动前修改:lower_case_table_names = 1,如果已经初始化需要先停止mysql服务然后将/etc/lib/mysql目录删除,再重新按第4步执行。)
后面密码修改为123456会提示密码太弱[非要改为123456,先要修改mysql8的密码规则],这里最好先将配置文件改了再来改密码,配置文件里面的密码规则影响navicat的登陆
# vi /etc/my.conf
4、启动mysql以及初始化密码
- # ps -ef|grep mysql //查看是否已经启动
-
- # systemctl start mysqld.service //启动服务
-
- # mysqld --initialize //初始化Mysql
-
- # grep 'temorary password' /var/log/mysqld.log //输出mysqld密码到文件
密码如下:
5、修改初始密码以及远程登陆
- # mysql -uroot -P3369 -p
-
- ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
出现如下错误需要降低policy等级:
执行:set global validate_password.policy=0; 再执行修改密码
6、授权远程登陆
- use mysql;
-
- update user set host = '%' where user = 'root';
7、刷新
FLUSH PRIVILEGES;
8、开启防火墙
- #firewall-cmd --permanent --add-port=3306/tcp //开启端口
-
- #firewall-cmd --reload //刷新应用
- centOS7 防火墙相关命令
-
- 一、开放端口用 --add-port
- firewall-cmd --permanent --add-port=8080/tcp
-
- 二、移除端口用 --remove-port
- firewall-cmd --permanent --remove-port=8080/tcp
-
- 三、刷新规则用 --reload
- firewall-cmd --reload
-
- 四、查询端口是否开放用 --query-port
- firewall-cmd --query-port=8080/tcp
-
- 五、防火墙其它管理操作命令
- 命令功能 命令
- 启动 firewalld.service服务 service firewalld start
- 停止firewalld.service服务 service firewalld stop
- 重启firewalld.service服务 service firewalld restart
- 查看firewall的状态 firewall-cmd --state
- 查看防火墙已有规则列表 firewall-cmd --list-all
- 查看firewall服务状态 systemctl status firewalld
-
- 六、备注
- firwall-cmd:是Centos Linux 7.x提供的操作firewall的一个工具
- --permanent:表示设置为持久有效,记忆技巧:per 自始至终 + man 逗留 + ent 具有…性质的 → 始终逗留的 → 持久的
-
- 防火墙文件地址:
- 1、/etc/firewalld/zones/public.xml 配置的在此文件中
- 2、/usr/lib/firewalld/zones 这里的防火墙配置文件一般不改变,应该是系统备份。
-
- 端口较多的情况直接在文件里配置,然后重启防火墙服务就好。
再说my.cnf配置,在启动好后,/etc/my.cnf已经自动生成好了。后续争对mysql的配置优化肯定少不了,
比如默认端口3306 就看个人喜好改一个,避免恶意攻击。
比如,如下:
- # For advice on how to change settings please see
- # http://dev.mysql.com/doc/refman/8.0/en/server-configuration-defaults.html
-
- [mysqld]
- #
- # Remove leading # and set to the amount of RAM for the most important data
- # cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
- # innodb_buffer_pool_size = 128M
- #
- # Remove the leading "# " to disable binary logging
- # Binary logging captures changes between backups and is enabled by
- # default. It's default setting is log_bin=binlog
- # disable_log_bin
- #
- # Remove leading # to set options mainly useful for reporting servers.
- # The server defaults are faster for transactions and fast SELECTs.
- # Adjust sizes as needed, experiment to find the optimal values.
- # join_buffer_size = 128M
- # sort_buffer_size = 2M
- # read_rnd_buffer_size = 2M
- #
- # Remove leading # to revert to previous value for default_authentication_plugin,
- # this will increase compatibility with older clients. For background, see:
- # https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_default_authentication_plugin
- # default-authentication-plugin=mysql_native_password
-
- port=3369
- character-set-server=utf8
- max_connect_errors=10
- max_connections=200
- default-storage-engine=INNODB
- default_authentication_plugin=mysql_native_password
- sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'
-
- datadir=/var/lib/mysql
- socket=/var/lib/mysql/mysql.sock
-
- log-error=/var/log/mysqld.log
- pid-file=/var/run/mysqld/mysqld.pid
-
-
- [mysql]
- default-character-set=utf8
- [client]
- port=3369
- default-character-set=utf8