centos7 安装 mysql8

https://dev.mysql.com/downloads/repo/yum/

 

下载mysql

wget https://repo.mysql.com//mysql80-community-release-el7-3.noarch.rpm

 

sudo rpm -ivh mysql80-community-release-el7-3.noarch.rpm

 

 

 

安装mysql

yum install mysql mysql-server

 

 

 

启动mysql

sudo systemctl start mysqld

 

检查mysql状态

sudo systemctl status mysqld

 

 

有红框的时间就是状态正常

查看临时密码
sudo grep ‘temporary password’ /var/log/mysqld.log

 

sudo grep ‘temporary password’ mysqld.log

 

 

配置mysql
sudo mysql_secure_installation

 

========================================================================================================================

https://dev.mysql.com/downloads/mysql/

 

 

wget  https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.26-linux-glibc2.12-x86_64.tar.xz

 

 

tar -Jxf mysql-8.0.26-linux-glibc2.12-x86_64.tar.xz

 

mv mysql-8.0.26-linux-glibc2.12-x86_64 mysql

mysql官网下载的有很多版本,以前的tar, 现在的xz,需要注意的是有的解压出来是直接可用的,有的则只有cmake文件,则需要编译之后再进行使用,具体的编译过程可以在百度搜索。

创建mysql用户

groupadd mysql
useradd -g mysql mysql

useradd -s /sbin/nologin mysql -M

 赋予/usr/local下面的mysql文件夹权限

chown -R mysql:mysql /usr/local/mysql

chown -R mysql.mysql /usr/local/mysql

 将读写权限赋值给/usr/local/mysql文件夹

chmod -R 755 /data/mysql /usr/local/mysql

 

 

移动到根目录下的data文件夹,在其下创建/data/mysql/data ,将数据保存到/data/mysql/data 目录下

新建一个文件夹存储数据、并授权

mkdir data
cd /data
mkdir mysql
cd mysql
mkdir data
cd data
pwd

 mkdir -p /data/mysql/data

 

 

 

chown -R mysql.mysql /data/mysql/data

 

 修改/data/mysql 的权限给mysql用户

chown -R mysql:mysql /data/mysql

 

 

 

chmod -R 775 /data/mysql/data

 将读写权限赋值给/data/mysql文件夹

chmod -R 775 /data/mysql

 

 

 

 编辑my.cnf文件,这里本是linux服务器上面没有这个文件vim编辑的时候回自动创建

vim /etc/my.cnf

 

[mysqld]
skip-name-resolve
#设置3306端口
#port=3306
port=3306
user=mysql
#设置mysql的安装目录
basedir=/usr/local/mysql
#设置mysql数据库的数据的存放目录
datadir=/data/mysql/data
#允许最大连接数
max_connections=200
#允许连接失败的次数。
max_connect_errors=10
#服务端使用的字符集默认为utf8mb4
character-set-server=utf8mb4
collation-server = utf8mb4_general_ci
#创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
#默认使用“mysql_native_password”插件认证
#mysql_native_password
#default_authentication_plugin=mysql_native_password
lower_case_table_names=1
max_allowed_packet=16M
socket=/data/mysql/mysql.sock
log-error=/data/mysql/error.log
pid-file=/data/mysql/mysql.pid
transaction_isolation = READ-COMMITTED
#sql_mode = “STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO”
[mysql]
#设置mysql客户端默认字符集
default-character-set=utf8mb4
[client]
#设置mysql客户端连接服务端时默认使用的端口
port=3306
socket=/data/mysql/mysql.sock
default-character-set=utf8mb4

 sql_mode在5.7有 NO_AUTO_CREATE_USER,但在8.0以后已经取消了

初始化

cd /usr/local/mysql
./bin/mysqld --initialize --user=mysql

 

 启动mysql

./support-files/mysql.server start

 配置 service mysql start启动
查看init.d 下是否有mysql(关键就是将我们解压的mysqld复制黏贴到init.d下面)

查看指定文件夹下是否有mysql

ll /etc/init.d/ | grep mysql

 

查找自己安装的mysql.server文件

find / -name mysql.server

 

 

 

因为我们刚才安装 /usr/local/mysql目录下,所以可以直接使用下面这句

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql

 

然后就可以在任意地方运行service mysql restart 啦

 

设置开机启动 在/etc/init.d文件夹下操作

cd /etc/init.d
chmod 755 /etc/init.d/mysql
chkconfig --add mysql
chkconfig --level 345 mysql on
service mysql restart

 

 

 

开机后通过 service mysql status 来判断mysql是否运行中

 

 

 重启服务

source /etc/profile

 

 

进入mysql

查看默认密码

 

 

mysql -uroot -p

 

 

 

ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

 

查看用户权限

select host,user from mysql.user;

 

 

授权以及设置账户可以远程连接

use mysql

 

 

update user set host='%' where user='root';
grant all privileges on *.* to 'root'@'%';
flush privileges;
quit

 

grant 授权
all 所有权限
. 表示针对 库.表 的权限,这里表示对所有库,所有表都授权
root 表示用户名
%表示全网 localhost表示内网允许

在 my.cnf 的mysqld 下增加

default_authentication_plugin=mysql_native_password

进入mysql命令行

mysql -uroot -p

 

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
FLUSH PRIVILEGES;

 

到这里所有mysql的设置都已经完成了,接下来是防火墙相关,如果你不想关闭防火墙,可以选择开放3306端口

修改相关文件
yum -y install iptables-services
$vi /etc/sysconfig/iptables
增加规则
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
$systemctl restart iptables.service #重启防火墙使配置生效

这里我选择的是直接关闭防火墙…
$systemctl stop firewalld.service #停止firewall
$systemctl disable firewalld.service #禁止firewall开机启动

 

posted @ 2021-09-28 22:13  残星  阅读(34)  评论(0编辑  收藏  举报