Linux上使用glibc方式安装MySQL5.7.33

Linux系统的安装方式

  • 1、yum安装

    缺点:安装路径不灵活,默认路径不能修改,一台服务器只能安装一个MySQL

    参考文档:Linux下安装mysql-5.7.31

  • 2、rpm安装

    缺点:安装路径不灵活,默认路径不能修改,一台服务器只能安装一个MySQL,rpm的套件有安装顺序

    参考文档:Linux下安装mysql-5.7.31,后半部分将rpm安装

  • 3、源码安装

    缺点:需要编译,安装过程很繁琐,无人采用此方式安装

  • 4、glibc包安装

    二进制的 TAR 包,也是源码,但无需编译

    参考文档:Linux下安装mysql-5.7.24

Linux 安装MySQL5.7.33 的glibc包

1、查看是否已安装

1、查看Linux系统是否已安装MySQL

[root@VM-0-12-centos ~]# rpm -qa | grep mysql
BDB2053 Freeing read locks for locker 0x7: 30189/139898526509120
BDB2053 Freeing read locks for locker 0x8: 30189/139898526509120
BDB2053 Freeing read locks for locker 0x9: 30189/139898526509120

有些 Linux系统 可能自带了 MySQL

2、下载MySQL

1、官网下载 Linux 的 glibc 版的 5.7.33 的MySQL

在这里插入图片描述

3、解压到 /usr/local目录

## 解压到 /usr/local 目录
[root@VM-0-12-centos mysql]# tar -zxvf mysql-5.7.33-linux-glibc2.12-x86_64.tar.gz -C /usr/local
## 重命名
[root@VM-0-12-centos local]# mv mysql-5.7.33-linux-glibc2.12-x86_64/ mysql-5.7.33-glibc

4、创建data目录

在 mysql 的内部创建 data 目录,用来存放 数据库 和 索引等数据

[root@VM-0-12-centos local]# cd mysql-5.7.33-glibc/
[root@VM-0-12-centos mysql-5.7.33-glibc]# mkdir data

5、修改mysql目录的用户组和权限

创建 mysql 用户用户组的作用,据说是为了Linux系统的安全,如果mysql被黑,不至于让黑客拿到root的权限。

Linux安装MySQL为何要创建mysql用户

### 创建mysql用户组
[root@VM-0-12-centos local]# groupadd mysql
### 创建mysql用户
[root@VM-0-12-centos local]# useradd -r -g mysql mysql
### 修改mysql目录所属用户组和所属用户
[root@VM-0-12-centos local]# chown -R mysql:mysql /usr/local/mysql-5.7.33-glibc/
### 修改mysql目录权限,其实可以不用修改,之前的权限已经是755
[root@VM-0-12-centos local]# chmod -R 755 /usr/local/mysql-5.7.33-glibc/

6、编译安装并初始化MySQL

该过程会在data目录下生成默认数据库

注意:该命令执行打印的日志尾部,有mysql登录的临时密码

[root@VM-0-12-centos bin]# ./mysqld --initialize --user mysql --datadir=/usr/local/mysql-5.7.33-glibc/data --basedir=/usr/local/mysql-5.7.33-glibc

在这里插入图片描述

记录日志最末尾位置**root@localhost:**后的字符串:ui>K3b-WGy0/ ,此字符串为mysql管理员临时登录密码。

这个过程如果报了错误,可在Linux下安装mysql-5.7.24 查找解决方式

在这里插入图片描述

执行如下命令解决:

[root@VM-0-12-centos bin]# yum -y install numactl

7、配置/etc/my.cnf

vim /etc/my.cnf

此时my.cnf的内容如下所示

在这里插入图片描述

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
symbolic-links=0
max_connections=600
innodb_file_per_table=1
lower_case_table_names=1
character_set_server=utf8

添加配置如下

[root@localhost bin]#  vi /etc/my.cnf

[mysqld]
datadir=/usr/local/mysql-5.7.33-glibc/data
port=3306
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
symbolic-links=0
max_connections=600
innodb_file_per_table=1
lower_case_table_names=1
character_set_server=utf8

lower_case_table_names:是否区分大小写,1表示存储时表名为小写,操作时不区分大小写;0表示区分大小写;不能动态设置,修改后,必须重启才能生效:
character_set_server:设置数据库默认字符集,如果不设置默认为latin1
innodb_file_per_table:是否将每个表的数据单独存储,1表示单独存储;0表示关闭独立表空间,可以通过查看数据目录,查看文件结构的区别;

8、启动MySQL服务器

### 启动MySQL服务
[root@VM-0-12-centos data]# /usr/local/mysql-5.7.33-glibc/support-files/mysql.server start

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8Ayh7E3o-1615106606093)(assets/1615098017742.png)]

解决方法可参考:linux安装mysql详细步骤

这也说明mysql.server 默认是读的 /usr/local/mysql 目录,后面不知道还有多少坑。

所以决定给 mysql-5.7.33-glibc 重命名为 mysql

同时修改my.cnf的配置

在这里插入图片描述

重新启动成功

9、添加软链接,保证可以并重启mysql服务

### 添加软链接到 /etc/init.d/mysql,保证可以通过service mysql start启动服务
[root@VM-0-12-centos local]# ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
### 添加软连接,以便可以直接使用mysql命令
[root@VM-0-12-centos local]# ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
### 重启mysql服务
[root@VM-0-12-centos local]# service mysql restart
Shutting down MySQL.. SUCCESS! 
Starting MySQL. SUCCESS! 

10、链接MySQL,修改密码

[root@VM-0-12-centos local]# mysql -uroot -p
Enter password: 
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

遇到了如上错误,解决方式: ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2)

[root@VM-0-12-centos mysql]# ln -s /usr/local/mysql/mysql.sock /tmp/mysql.sock
[root@VM-0-12-centos mysql]# mysql -uroot -p
mysql> set password for root@localhost = password('password');

11、开放远程链接

保证可以外网访问

mysql> use mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> update user set user.Host='%' where user.User='root';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

12、开机自启动

1、将服务文件拷贝到init.d下,并重命名为mysql
[root@localhost /]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
2、赋予可执行权限
[root@localhost /]# chmod +x /etc/init.d/mysqld
3、添加服务
[root@localhost /]# chkconfig --add mysqld
4、显示服务列表
[root@localhost /]# chkconfig --list
  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值