centOs7安装mysql8.0

之前一直没怎么在centOS7安装过mysql,网上找了一些用rpm等方式安装的攻略,最后都失败,失败原因不一,最后找到一篇简书的文章,实测管用,但是有部分步骤依然没说明白,自己实操了下把步骤记录下来:

文章内容主要来源:Centos7安装mysql8 - 简书

下载安装包

MySQL :: Download MySQL Community Server

这样选.

下载这个版本:

 

接下来将下载的文件放到linux服务器上:

解压文件并放到目标目录下

xz -d mysql-8.0.28-linux-glibc2.12-x86_64.tar.xz

接着执行命令,将压缩包解压到/usr/local下,或者其他你想要放置的目录下,注意如果这里放置的目录和我的不一致,则后续所有操作涉及mysql目录的路径也要跟着改变:

tar xvf  mysql-8.0.28-linux-glibc2.12-x86_64.tar -C /usr/local/

注意不用能zxvf,会报错,要用xvf.

做软链接

解压后进入/usr/local/就能看到解压的mysql目录了,做软链接:

cd /usr/local/

ln -s mysql-8.0.28-linux-glibc2.12-x86_64/ mysql

效果如下:

创建目录和用户等操作

在MySQL根目录下新建一个文件夹data,用于存放数据

 mkdir /usr/local/mysql/data 

创建mysql用户组和mysql用户

groupadd mysql

useradd -g mysql mysql

改变 mysql 目录权限

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

初始化数据库,创建mysql_install_db安装文件

 mkdir /usr/local/mysql/mysql_install_db 

chmod 777 /usr/local/mysql/mysql_install_db

自动生成密码的初始化方式

/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data  --lower-case-table-names=1

注意控制台会输出你的临时密码(下图是控制台输出,最好把密码复制出来存一下)

如果报错./mysqld: error while loading shared libaries: libnuma.so.1: cannot open shared object file: No such file or directory就是没用安装libnuma,
安装libnma命令
yum install libnuma

yum -y install  numactl

yum install libaio1 libaio-dev

mysql配置

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

完全搞不懂这步是为了啥

修改my.cnf文件 vi /etc/my.cnf 内容如下 :

[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/usr/local/mysql/mysql.sock
#symbolic-links=0
character-set-server=utf8
port=3306
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
#缓冲池配置,默认128M,自行百度按情况配置
innodb_buffer_pool_size = 6000M
#数据库最大连接数,自行配置
max_connections=1000
#临时表大小
tmp_table_size=2048M
#不大明白,百度吧
skip_name_resolve=1
lower_case_table_names=1

​​​​​​​

#[mysqld_safe]
#log-error=/var/log/mariadb/mariadb.log
#pid-file=/var/run/mariadb/mariadb.pid

#!includedir /etc/my.cnf.d
[client]
socket=/usr/local/mysql/mysql.sock
default-character-set=utf8

建立MySQL服务

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql //将启动脚本放到开机初始化目录

chmod +x /etc/init.d/mysql //设置权限

添加到系统服务

 chkconfig --add mysql 

配置全局环境变量

编辑 / etc/profile 文件,vi /etc/profile
在文件最下面添加

export MYSQL_HOME=/usr/local/mysql
export PATH=$PATH:$MYSQL_HOME/bin:$MYSQL_HOME/lib

如图:

 如果之前已经安装过jdk等也配置了环境变量,则拼接到jkd路径后面即可:

设置环境变量立即生效

source /etc/profile

启动MySQL服务

systemctl start mysql 或者service mysql start  都可以

登录mysql及修改密码

mysql -uroot -p 按下回车键会要求输入之前展示的临时密码,注意,这里最好手敲,不要复制粘贴,否则可能失败.成功登陆效果如下:

接下来修改密码

SET PASSWORD FOR root@localhost='123456';  //注意这里123456可以改成其他密码

效果如下:

 此时可以输入quit退出mysql连接,然后重新用mysql -uroot -p输入上诉密码测试是否改成功了

接下来就可以测试用navicat或者sqlyog等工具连接数据库了,记得开放防火墙端口或者干脆关闭防火墙:

systemctl stop firewalld

然而访问发现:

开放权限

需要开放权限,比较粗放的方式如下.

在linux重新登录mysql

mysql -uroot -p 密码
use mysql;  #选择数据库

update user set host = '%' where user = 'root';

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

ALTER USER 'root'@'%' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER;

FLUSH PRIVILEGES; #刷新权限

注意上面的123456可以设置为自己想要的密码

上面的%是所有网段可以访问mysql,也可以对不同用户指定特定ip网段才可以访问,这个就自己百度了.

接着就可以正常通过sqlyog或者navicat访问mysql了:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值