liunx安装mysql8

以下是踩坑无数最后搞定的一套安装方法
安装环境liunx7.6 64位 mysql版8 之前的5.6 5.7 都不想装了,浑身是坑

首先在mysql官网下载包 8.12的版本差不多480M,放在usr local文件夹下

cd /usr/local/

解压tar包

tar -zxvf XXX.tar.gz

将解压后的文件改名为mysql

mv XXX.tar.gz mysql

添加用户组和mysql用户

groupadd mysql和useradd -r -g mysql mysql

【初始化】非常关键,十次安装九次栽在坑里

cd /usr/local/mysql
chown -R mysql:mysql ./
bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

(注:这个命令与之前5.7以前版本不一样了,特别注意别搞错了)
我在这里报错了,错误信息如下
bin/mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory
查阅资料,接着我执行了如下操作

touch mysql_install_db
chmod 777 ./mysql_install_db
yum install libaio-devel.x86_64
y

然后重新进行初始化,发现并未解决问题,于是我继续找解决方法,执行了如下命令

yum -y install numactl

重新初始化
好的,成功了!
在这里插入图片描述
请注意图上面最后一串字符,那是初始化密码,很重要的,请复制自己的密码记下来。

修改当前用户

chown -R root:root
chown -R mysql:mysql data

复制配置文件

cp support-files/my-default.cnf /etc/my.cnf

如果没有my-default.cnf就手动创建一个文件,并且配置权限,注意文件的目录,配权限也一定要操作在对应目录上

touch my-default.cnf
chmod 777 ./my-default.cnf

复制成功之后,修改/etc/my.cnf文件
在这里插入图片描述
(图上忘了加utf8)

[mysqld]
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
#socket = /var/lib/mysql/tmp/mysql.sock
#socket=/tmp/mysql.sock
socket = /usr/local/mysql/tmp/mysql.sock
character-set-server=utf8

#必填项
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

[client]
port = 3306
socket = /usr/local/mysql/tmp/mysql.sock

以上是my.cnf的最基本配置,更多更丰富的配置可以去搜一搜,很多。

如果/usr/local/mysql/目录下没有tmp文件,手动创建,并且配置权限
切记,要在该目录下创建并配置权限

touch tmp
chmod 777 ./tmp

加入开机启动、注册启动服务、查看是否添加成功

cp mysql.server /etc/init.d/mysql
chmod +x /etc/init.d/mysql
chkconfig --add mysql
chkconfig --list mysql

成功会出现mysql 0:off 1:off 2:on 3:on 4:on 5:on 6:off

配置环境变量

vi /etc/profile

最后一行有path就往后加路径,冒号隔开。没path就直接复制下面这一整句

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

刷一下文件生效

source /etc/profile

下面是激动人心的时刻,启动

serivce mysql start  

尴尬报错!
换一句再来

service mysql  restart

好了,可算是启动了!

登录

mysql -uroot -p

粘贴输入之前复制的初始密码,注意,密码不显示,输完按确定。
按道理来说,按上面的配置应该没啥问题,如果又报错,还是如下的信息
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2)
恭喜你,又踩到坑了。
那么我们再来聊聊解决方法,这个报错是我之前报的,那个时候my.cnf里面的socket指向的是报错的这个路径。这个路径的内容偶尔会被删掉,所以我就更改了指向的路径,在上文配置my.cnf的地方可以看到路径。如果你在看这段话,请你注意,你配置的指向路径的文件夹是否存在。不存在的话,就新建一个,并且配置权限,重启一下应该就没什么问题了。
例如我的配置下,在这个目录下新建了tmp文件夹,然后配置权限

chmod 777 /usr/local/mysql/tmp

登录成功之后,界面就进入了mysql
mysql>
修改密码

alter user 'root'@'localhost' identified by '你的密码';

这样就算是完成了。但是还可能存在其他问题。

使用远程连接进行测试,远程无法连接,记得开放服务器端口。

在本地使用sqlyog类似的工具进行远程连接,输入ip,账号密码之后,发现依然不能连接。如果是报如下错误
ERROR 1130: Host 192.168.3.100 is not allowed to connect to this MySQL server
猜想是无法给远程连接的用户权限问题。结果这样子操作mysql库,即可解决。特贴出来。。在本机登入mysql后,更改 “mysql” 数据库里的 “user” 表里的 “host” 项,从”localhost”改称’%’。。

mysql -u root -p

   mysql>use mysql;
  mysql>select 'host' from user where user='root';
  mysql>update user set host = '%' where user ='root';
  mysql>flush privileges;
  mysql>select 'host'  from user where user='root';

第一句是以权限用户root登录
  第二句:选择mysql库
  第三句:查看mysql库中的user表的host值(即可进行连接访问的主机/IP名称)
  第四句:修改host值(以通配符%的内容增加主机/IP地址),当然也可以直接增加IP地址
  第五句:刷新MySQL的系统权限相关表
  第六句:再重新查看user表时,有修改。。

修改完成之后,再次连接,发现依然不能连接,报错编号2058.
解决方法,登录mysql操作窗口,执行如下

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你的密码'

重新连接即可。

以上都是自己一步步操作,踩出来填起来的坑,大家可以对着操作下,应该没问题了。
每个人的环境都是千变万化,我无数次卸载重装失败之后,重装liunx,以一个崭新的系统进行这次mysql8的安装。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值