mysql8安装自定义路径

mysql8安装自定义路径



一、下载 链接:https://dev.mysql.com/downloads/mysql/ 点击 Download,如下图:

没有登陆,点击 “No thanks,just start my downlaod.” 即可下载 二、安装 2.1 将下载的mysql-8.0.23-linux-glibc2.12-x86_64.tar.xz上传到服务器,并解压为tar 命令:xz -dev mysql-8.0.23-linux-glibc2.12-x86_64.tar.xz 如下图: 2.2 解压mysql-8.0.23-linux-glibc2.12-x86_64.tar 到目录 /opt/module下面 解压命令:tar -xvf mysql-8.0.23-linux-glibc2.12-x86_64.tar -C /opt/module/ 重命名:mv mysql-8.0.23-linux-glibc2.12-x86_64 mysql8 如下图, 2.3 进入mysql解压后的目录mysql8,并创建存放mysql日志的目录 cd /opt/module/mysql8/ mkdir data

2.4 配置mysql环境变量 MYSQL_HOME=/opt/module/mysql8/bin PATH=$PATH:$MYSQL_HOME export MYSQL_HOME PATH 如下图: 配置完成后重载: source /etc/profile 2.5 创建mysql用户组和mysql用户 groupadd mysql useradd -g mysql mysql 如下图: 2.6 关联myql用户到mysql用户组中 进入到mysql8所在目录,此例中为/opt/module/ chown -R mysql:mysql ./ chown -R mysql:mysql ./data/ chown -R mysql ./data/ chown -R mysql ./ 2.7 更改mysql安装文件夹mysql的权限 [root@localhost module]# chmod -R 755 mysql8 2.8 安装libaio依赖包 查询是否安装libaio依赖包

yum search libaio apt-get install -y libaio1 apt-get install numactl libncurses6 如果没安装,可以用下面命令安装: yum install libaio 2.9 初始化mysql命令 mysqld –user=mysql –basedir=/opt/module/mysql8 –datadir=/opt/module/mysql8/data –initialize 红色框内的是mysql数据库登录的临时密码,保存备用,每个人安装生成的临时密码不一样。 2.10 启动mysql服务 sh /opt/module/mysql8/support-files/mysql.server start 上面启动mysql服务命令是会报错的,因为没有修改mysql的配置文件,报错内容大致如下: 2.11 修改Mysql配置文件 vim /opt/module/mysql8/support-files/mysql.server 修改以下属性: basedir=/opt/module/mysql8 datadir=/opt/module/mysql8/data mysqld_pid_file_path=/opt/module/mysql8/data/mysqld_pid 如下图所示:

接下来, cp /opt/module/mysql8/support-files/mysql.server /etc/init.d/mysqld chmod 755 /etc/init.d/mysqld 将mysql服务加到系统服务中 chkconfig –add mysqld 开机自启动 chkconfig mysqld on 如下图: 2.12 修改my.cnf文件 这里下载的mysql8.0.23版本并没有这个my.cnf文件,因此直接创建的。 vim /etc/my.cnf [client] port=3306 socket=/tmp/mysql.sock [mysqld] basedir=/opt/module/mysql8 datadir=/opt/module/mysql8/data

socket=/tmp/mysql.sock user=mysql port=3306 character_set_server=utf8

symbolic-links=0

bind-address=0.0.0.0

[mysqld_safe] log-error=/opt/module/mysql8/data/error.log pid-file=/opt/module/mysql8/data/mysqld.pid tmpdir=/tmp my.cnf 如下图: 然后,授权文件my.cnf(注意:这一步有待思考?) [root@localhost etc]# chown mysql:mysql my.cnf [root@localhost etc]# chown mysql my.cnf [root@localhost etc]# chmod 755 my.cnf 再次启动mysql服务成功,如下图: 2.13 启动服务 查看服务:service mysqld status 停止服务:service mysqld stop 启动服务:service mysqld start 如下图: 2.14 登录mysql mysql -uroot -p

此时出现错误:./mysql: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory 解决办法:yum install libncurses*完美解决! 再次登录mysql(注意:这里的密码是初始化生成的临时密码) 2.15 修改初始化用的临时密码 use mysql 报错如下: 解决办法: 修改初始密码:alter user ‘root’@’localhost’ identified by ‘root’; 刷新:flush privileges;

至此,完成mysql8.0.23的安装。 Navicat Premium 连接MYSQL8出现10060 “Unkown error”解决办法: 首先检查是否ping得通,其次再检查如下原因: 原因一:由于mysql 没有开启对外访问权限 原因二:由于防火墙没有对外开放mysql的默认端口3306导致 原因三:由于阿里云或者是腾讯云的安全组规则没有开放3306端口 参考:https://blog.csdn.net/weixin_43967679/article/details/107247901 此文章可解决; 如果还未解决,通过netstat查看3306的端口状态是怎么样的?是否绑定了本地回旋地址? netstat -apn | grep 3306 如果MySQL的默认bind-address(监听IP地址)为127.0.0.1,即只能为本机提供服务,禁止远程连接。则只需要如 下解决: [mysqld] bind-address = 0.0.0.0 但这里不是,我这里的原因是防火墙没有放行。 另外,由于是CentOS8版本,防火墙命令有差异,参考 https://blog.csdn.net/RougeK/article/details/108676073 即可。 关闭防火墙 关闭防火墙 #禁用,禁止开机启动:systemctl disable firewalld #停止运行:systemctl stop firewalld yum安装iptables yum -y install iptables-services 启动 systemctl start iptables 配置 vim /etc/sysconfig/iptables

由于我这里是测试环境,在虚拟机内使用,则直接关闭了防火墙,实际生产环境应该是放行3306端口。如下图: 然后再重启Linux,再进行Navicat Premium连接,提示一下错误: 又该如何解决? 原因分析: 其实是mysql8.0版更换了新的身份验证是(caching_sha2_password)之前身份验证是 (mysql_native_password),Navicat,和SQLyog客户端软件其实是不支持新的身份验证,也就是说新的身 份验证找不到(caching_sha2_password),既然知道了是这个问题,那么我们就把登录密码加密规则改回 (mysql_native_password)即可。 参考:https://blog.csdn.net/weixin_40845165/article/details/84076691 即可: 第一步:登录MySQL mysql -uroot -p 第二步:修改加密规则 alter user ‘root’@’%’ identified by ‘password’ password expire never; 第三步:更新用户密码 alter user ‘root’@’%’ identified with mysql_native_password by ‘password’; 第四部:刷新权限 flush privileges; 第五步:重置密码 alter user ‘root’@’%’ identified by ‘root’; 如下图:

再次重新连接,成功!

page1

page2

page2

page2

page3

page3

page3

page3

page3

page3

page4

page4

page4

page4

page5

page5

page6

page6

page6

page7

page7

page7

page7

page8

page8

page8

page9

page9

page10

page10