1、安装前工作
在安装前需要确定现在这个系统有没有 mysql,如果有那么必须卸载 (在 centos7 自带的是 mariaDb 数据库,所以第一步是卸载数据库)。
#查看mariadb数据库:rpm -qa | grep mariadb
#卸载mariadb数据库:rpm -e --nodeps mariadb文件名
#查看 mysql 数据库:rpm -qa | grep -i mysql
#卸载 mysql 数据库:rpm -e mysql文件名 # 如果有关联文件,不能直接卸载。可以用一下命令强制卸载:rpm -e --nodeps mysql文件名)
mysql80-community-release-el7-1.noarch
mysql-community-server-8.0.11-1.el7.x86_64
mysql-community-common-8.0.11-1.el7.x86_64
mysql-community-libs-8.0.11-1.el7.x86_64
mysql-community-client-8.0.11-1.el7.x86_64
#删除etc目录下的my.cnf文件:rm /etc/my.cnf
2、进官网,选择适合自己版本的linux下的MYSQL版本。
按照箭头上的数字,依次进行操作,进入下面这个图景。
等待下载好,这样第一步就完成了。
2.将其下载好的mysql-8.0.15-el7-x86_64.tar.gz 上传至linux系统中进行解压 。
(1)本人将这个文件上传至/root/ 目录下,首先查看 /root/目录下的文件。以确保系统中有这个文件。
1、cd /root/
2、ls
(2)将文件进行解压。
tar -zxvf mysql-8.0.17-el7-x86_64.tar.gz
然后会在当前 /root/ 目录下会生成 这个目录。
3.对mysql进行安装。
(1)将mysql-8.0.17-el7-x86_64 安装到 /usr/local/mysql 下。
mv mysql-8.0.17-el7-x86_64 /usr/local/mysql //将文件移动到 /usr/local/ 目录下,并更名为mysql 。
(2)为系统添加mysql 组和用户。
groupadd mysql和useradd -r -g mysql mysql
(3)进入 /usr/local/mysql 目录下,修改相关权限。
cd /usr/local/mysql //进入/usr/local/mysql 目录
chown -R mysql:mysql ./ //修改当前目录为mysql用户
(4)mysql初始化操作,记录下临时密码,之后第一次登录的时候会用到。
bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data //运行完成会生成一个暂时的密码。
结果如下
(5)查看初始化过程中有没有自动生成my.cnf 文件.
cd /etc/ //进入/etc/目录下
ls | grep my.cnf //查看是否有my.cnf 文件。有则会产生结果。
(6) 初始化生成了my.cnf 文件,跳至第八步,修改my.cnf 文件的信息。
(7) 如果初始化过程中没有生成my.cnf , 新建一个my-defalut.cnf文件,将其复制到/etc/my.cnf
touch my-defalut.cnf //新建一个文件
chmod 755 my-defalut.cnf // 赋予权限
cp my-defalut.cnf /etc/my.cnf // 将文件复制到/etc/ 目录下,并更名为my.cnf 文件名。
(8)my.cnf 的信息如下
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port=3306
socket=/tmp/mysql.sock
pid-file=/usr/local/mysql/$hostname.pid //注意了,小细节,这里的 $hostname 是linux的主机名。一般每个人主机名都是不一样的。
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
(9)为mysql配置环境变量。
vim /etc/profile // 打开profile文件。
export MYSQL_HOME
MYSQL_HOME=/usr/local/mysql
export PATH=$PATH:$MYSQL_HOME/lib:$MYSQL_HOME/bin
(10) 设置为开机自启动项。
依次执行一下代码。
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
chmod +x /etc/init.d/mysql //添加可执行权限。
chkconfig --add mysql // 注册启动服务
输入chkconfig --list //查看是否添加成功。
表示成功。
(11)开启服务器,登录进入mysql。
service mysql start //开启服务器。
mysql -uroot -p //登录进入mysql,然后提示输入密码。
输入初始化过程中生成的临时密码,然后回车就行。进入一下页面。
到此,说明已经安装成功了。
(12)进入mysql后,修改密码。不然你什么也做不了。
alter user 'root'@'localhost' identified by 'your_password';
然后 exit; 退出,重新进入,进行测试。
show databases;
13、设置远程登陆
mysql>use mysql;
mysql>select 'host','user' from user where user='root';
mysql>update user set host = '%' where user ='root';
mysql>flush privileges;
mysql>select 'host' ,'user' from user where user='root';
1.2.8 在防火墙中开启3306端口
CentOS7默认使用的是firewall作为防火墙,我这里改为习惯常用的iptables防火墙
第一步: 关闭firewall防火墙(如果不想用防火墙,关闭即可)
-
systemctl stop firewalld.service
-
systemctl disable firewalld.service
-
systemctl mask firewalld.service
第二步: 安装iptables防火墙
yum install iptables-services -y
第三步: 启动iptable防火墙
-
systemctl enable iptables
-
systemctl start iptables
第四步: 编辑防火墙增加端口 防火墙文件位置为: /etc/sysconfig/iptables
vim /etc/sysconfig/iptables
在倒数第三行上增加
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
第五步: 重启防火墙
-
systemctl enable iptables.service
-
systemctl start iptables.service