文章目录
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的权限。
### 创建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