MySql 安装

SunnyFan大约 2 分钟约 714 字

MySql 安装

开始安装

先检查有没有安装mariadb,有的话将其卸载,不然会和mysql冲突

yum list | grep mariadb

卸载mariadb

rpm -qa|grep mariadb
yum remove mariadb-libs.x86_64

下载包源

# 下载地址https://downloads.mysql.com/archives/community/,选择对应版本
# 本文使用wget命令直接在服务器下载
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.40-el7-x86_64.tar.gz

解压包到指定路径

# -C 参数后面可以指定解压位置。
tar -zxvf mysql-5.7.40-el7-x86_64.tar.gz -C /opt #解压文件到指定目录

# 重命名为mysql
cd /opt
mv mysql-5.7.40-el7-x86_64 mysql

添加MySQL组和用户(默认会添加,没有添加就自己添加)

groupadd mysql
useradd -r -g mysql mysql

进入 /opt/mysql 目录下,修改相关权限。

cd /opt/mysql
chown -R mysql:mysql ./

mysql初始化操作,记录下临时密码,之后第一次登录的时候会用到。

cd bin
./mysqld --initialize --user=mysql --basedir=/opt/mysql --datadir=/opt/mysql/data
# <3,muw>LEUke

调整配置

修改指定的环境变量路径

vi /opt/mysql/support-files/mysql.server
# 如下图,修改为正确的路径后保存文件

图

建立系统变量软连接

ln -s /opt/mysql/support-files/mysql.server /etc/init.d/mysql
# 检查是否成功

建立bin目录系统变量的软连接

ln -s /opt/mysql/bin/mysql /usr/local/bin/mysql
# 检查是否成功

创建my.cnf

vi /etc/my.cnf

[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
# 作用是禁止域名解析:在mysql的授权表中就不能使用主机名了,只能使用IP
skip-name-resolve
# 设置3306端口
port = 3306
#设置远程访问ip
bind-address=0.0.0.0
# 设置mysql的安装目录
basedir=/opt/mysql
# 设置mysql数据库的数据的存放目录
datadir=/opt/mysql/data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
#设置查询操作等不区分大小写
lower_case_table_names=1

设置权限

chmod -R 775 /etc/my.cnf

开始启动mysql服务

service mysql start   #启动mysql服务
service mysql stop    #停止mysql服务
service mysql restart  #重启mysql服务

设置开机启动

# 设置开机自启
chkconfig --add mysql 
# 查看是否开启
chkconfig --list

首次登录mysql,并修改密码

mysql -uroot -p #  <3,muw>LEUke

alter user 'root'@'localhost' identified by '123456';

开启远程访问

CREATE USER 'root'@'%' IDENTIFIED BY '123456'; # 这一步执行失败没关系
GRANT ALL ON *.* TO 'root'@'%';
flush privileges;

开启防火墙

#查看防火墙目前的放行端口列表
firewall-cmd --list-ports
#添加防火墙放行端口(permanent代表永久生效)
firewall-cmd --add-port=3306/tcp --permanent
#重新加载防火墙(添加完放行端口一定要重新加载防火墙)
firewall-cmd --reload

测试是否能访问

提示

自行测试吧