阿里云linux安装mysql8.0.20

10 篇文章 1 订阅

此文章写于2020年初,最近我重新按照此方式安装一直有问题,新看了个文章:
8.0.23版本安装

删除老版本的mysql
  1. 查看mysql的安装情况:rpm -qa|grep -i mysql
  2. 停止mysql服务,删除mysql
    rpm -ev mysql-5.1.73-8.el6_8.x86_64
    rpm -ev mysql-libs-5.1.73-8.el6_8.x86_64
  3. 注意:可能会抛依赖错误错 error:Failed dependencies,则加上 --nodeps不检查依赖关系删除,命令如下
    rpm -e --nodeps mysql-libs-5.1.73-8.el6_8.x86_64
  4. 删除遗留的mysql文件和依赖库
    find / -name mysql
    rm -rf /var/lib/mysql
  5. mysql 配置文件还要手动删除
    rm -rf /etc/my.cnf
  6. 检查一遍mysql 是否成功删除
    rpm -qa|grep -i mysql
去mysql官网下载安装包

mysql下载

放到linux并解压
  1. 将mysql的安装包放到指定的目录下,解压,我是放在/usr/local
# tar -xvf mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz 
如果报如下错误,请安装组件
# tar -xvf mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz 
tar (child): xz: Cannot exec: No such file or directory
tar (child): Error is not recoverable: exiting now
tar: Child returned status 2
tar: Error is not recoverable: exiting now
# yum install -y xz

在这里插入图片描述

  1. 重命名文件
mv mysql-8.0.20-linux-glibc2.12-x86_64 mysql

在这里插入图片描述

创建用户和用户组并授权
[root@yhx local]# groupadd mysql // 创建用户组
[root@yhx local]# useradd -r -g mysql mysql // 创建用户

进入到mysql下授权所有文件

[root@yhx mysql]# chown -R mysql:mysql ./

在这里插入图片描述
同时在mysql文件夹下创建data文件夹

[root@yhx mysql]# mkdir data

在这里插入图片描述

初始化数据库
[root@yhx mysql]#  ./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

如果报如下错误:
在这里插入图片描述
需要安装libaio包:

yum install -y libaio
# 也有可能是:
yum install -y libaio.so.1

安装完成后重新初始化成功,记下生成的随机密码:

在这里插入图片描述
修改data权限:

# chown -R mysql:mysql data
mysql配置

修改/etc/my.cnf文件为:

# MySQL 配置文件,

# 数据库目录 /data/mysql
[client]
port=3306
# mysql socket 文件存放地址
socket=/tmp/mysql.sock
# 默认字符集
default-character-set=utf8

[mysqld]
server-id=1
# 端口
port=3306
# 运行用户
user=mysql
# 最大连接
max_connections=200
socket=/tmp/mysql.sock
# mysql 安装目录(解压后文件的目录)
basedir=/usr/local/mysql
# 数据目录(这里放在我们新建的 /data/mysql 下)
datadir=/data/mysql
pid-file=/data/mysql/mysql.pid
init-connect='SET NAMES utf8'
character-set-server=utf8
# 数据库引擎
default-storage-engine=INNODB
log_error=/data/mysql/mysql-error.log
slow_query_log_file=/data/mysql/mysql-slow.log

# 跳过验证密码
#skip-grant-tables

[mysqldump]
quick
max_allowed_packet=16M
EOF

如果后期mysql运行报错,可以直接到log-error = /usr/local/mysql/data/error.log目录下直接查看错误日志

命令:cat /usr/local/mysql/data/error.log

设置开机自启:
# cd support-files/
# cp mysql.server /etc/init.d/mysql 
# chmod +x /etc/init.d/mysql
注册服务
# chkconfig --add mysql // 注册服务
# chkconfig --list mysql // 查看服务

在这里插入图片描述

etc/ld.so.conf配置路径
# cp ld.so.conf ld.so.conf.d // 备份,上面的my.cnf也是
# vim ld.so.conf


# 添加如下内容:
/usr/local/mysql/lib
配置环境变量
# cp profile profile.d
# vim profile

#在最后添加如下内容:
#MYSQL ENVIRONMENT
export PATH=$PATH:/usr/local/mysql/bin:/usr/local/mysql/lib

然后执行:

source profile  # 该命令作用为在当前bash环境下读取并执行FileName中的命令。
登录
# mysql -uroot -p
Enter password: # 这里输入之前记录的密码

如果出现以下问题,可能因为丢失套接字文件而不能连接(如上截图错误),你可以简单地通过重启服务器重新创建得到它。因为服务器在启动时重新创建它
在这里插入图片描述
修改密码:

mysql> alter user 'root'@'localhost' identified by 'root';
Query OK, 0 rows affected (0.00 sec)
开启远程连接

授予root用户可以远程登录:

mysql> GRANT ALL ON *.* TO 'root'@'%';

如果出现以下问题:

mysql> GRANT ALL ON *.* TO 'root'@'%';
ERROR 1410 (42000): You are not allowed to create a user with GRANT

产生用户不能授权的原因是mysql 数据库中user 表中的特定用户(root) 的host 的属性值为localhost。
查看用户信息:(可以看到root用户的host是localhost)

mysql> select host,user authentication_string, plugin from user;
+-----------+-----------------------+-----------------------+
| host      | authentication_string | plugin                |
+-----------+-----------------------+-----------------------+
| localhost | mysql.infoschema      | caching_sha2_password |
| localhost | mysql.session         | caching_sha2_password |
| localhost | mysql.sys             | caching_sha2_password |
| localhost | root                  | caching_sha2_password |
+-----------+-----------------------+-----------------------+
4 rows in set (0.00 sec)

这里修改root的属性值

mysql> update user set host = '%' where user = 'root';
Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> flush privileges;     # 立即生效
Query OK, 0 rows affected (0.01 sec)

mysql> GRANT ALL ON *.* TO 'root'@'%';
Query OK, 0 rows affected (0.01 sec)

mysql> exit;    # 退出
Bye
重启服务
service mysql restart

然后就可以去navicat查看连接了,多说一句,如果连接不上,先去看看是不是服务器的3306端口没有开放!!!

参考:
https://blog.csdn.net/weixin_42109071/article/details/89375748
https://www.cnblogs.com/yunian139/p/11804965.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值