【Mysql】Centos 7.6安装Mysql8

这里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

安装完成后出现以下两文件:

【Mysql】Centos 7.6安装Mysql8_第1张图片

使用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密码到文件

密码如下:

【Mysql】Centos 7.6安装Mysql8_第2张图片

 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

你可能感兴趣的:(数据库,centos,mysql,linux)