欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 运维知识 > 数据库 >内容正文

数据库

Linux源码安装Mysql5.7

发布时间:2023/12/31 数据库 34 豆豆
生活随笔 收集整理的这篇文章主要介绍了 Linux源码安装Mysql5.7 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

1.下载软件包
进入到mysql官网下载自己对应版本的mysql,
下载地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads
我这里下载mysql-5.7.30-linux-glibc2.12-x86_64.tar版本
将下载好的源码压缩包上传至:/home目录下
(新建虚拟机时磁盘没有规划,导致home目录磁盘空间比较大,所以将mysql安装在home目录下)

2.检查卸载
安装前,我们可以检测系统是否自带安装 MySQL:

[root@localhost home]# rpm -qa | grep mysql

如有,类似 mysql-libs-5.1.52-1.el6_0.1.x86_64那可以选择进行卸载:

rpm -e mysql-libs-5.1.52-1.el6_0.1.x86_64  // 普通删除模式 rpm -e --nodeps mysql-libs-5.1.52-1.el6_0.1.x86_64  // 强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除

检查否存在 mariadb 数据库,如有,卸载之,卸载同上

[root@localhost home]# rpm -qa | grep mariadb

如有,类似mariadb-libs-5.5.56-2.el7.x86_64
则 卸载rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64

3.安装
(1)安装源文件版本:mysql-5.7.30-linux-glibc2.12-x86_64.tar
进入 /home, 解压源码文件,并重新命名mysql-5.7

[root@localhost homel]#tar -xf mysql-5.7.30-linux-glibc2.12-x86_64.tar [root@localhost homel]# mv mysql-5.7.30-linux-glibc2.12-x86_64 mysql-5.7

(2)创建数据文件mkdir data

[root@localhost homel]# cd mysql-5.7 [root@localhost mysql-5.7]#mkdir data

(3)检查mysql组和用户是否存在,如无创建

[root@localhost mysql-5.7]# cat /etc/group | grep mysql #类似 mysql:x:490: [root@localhost mysql-5.7]# cat /etc/passwd | grep mysql #类似 mysql:x:496:490::/home/mysql:/bin/bash

以上为存在的情况,如无,执行添加命令:groupadd mysql 和 useradd -r -g mysql mysql

[root@localhost mysql-5.7]# groupadd mysql [root@localhost mysql-5.7]# useradd -r -g mysql mysql

#useradd -r参数表示mysql用户是系统用户,不可用于登录系统

(4)将/home/mysql-5.7的所有者及所属组改为mysql

[root@localhost mysql-5.7]# chown -R mysql.mysql /home/mysql-5.7 [root@localhost mysql-5.7]# chown -R mysql.mysql /home/mysql-5.7/data [root@localhost mysql-5.7]# chown -R mysql /home/mysql-5.7/data [root@localhost mysql-5.7]# chown -R mysql /home/mysql-5.7 [root@localhost mysql-5.7]# chmod -R 755 /home/mysql-5.7

(5)在/home/mysql-5.7/support-files目录下创建my_default.cnf

[mysqldump] user =root password =123456[mysqld] basedir=/home/mysql-5.7 datadir=/home/mysql-5.7/data user = mysql log-bin=/home/mysql-5.7/mysql-bin #binlog-do-db=test #binlog-ignore-db=mysqlserver-id=4 character-set-server=utf8 collation-server=utf8_general_ci max_connections=4096 max_connect_errors = 1024 socket=/home/mysql-5.7/mysql.sock log-error=/home/mysql5.7/mysqld.log pid-file=/home/mysql5.7/mysqld.pidsql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTIONevent_scheduler=1 back_log=500 #数据库连接闲置最大时间值为30分钟 wait_timeout=1800 #禁止MySQL对外部连接进行DNS解析 skip-name-resolve#innodb_additional_mem_pool_size=100M#thread_concurrency=32 #MySql读入缓冲区大小 read_buffer_size=4M #临时表的大小为32M tmp_table_size=32M#max_allowed_packet = 500M explicit_defaults_for_timestamp=true #关闭大小写 lower_case_table_names=1#innodb_flush_log_trx_commit=0#log-error=/home/mysqld.log#interactive_timeout=216000 #wait_timeout=216000 #二进制日志自动删除的天数 #expire_logs_days=15 #binlog_format=mixed#log-bin-trust-function-creators=1 #event_scheduler = 1#log_timestamps=SYSTEM #innodb_buffer_pool_size = 130023424 innodb_buffer_pool_size=4294967296 #group_concat_max_len = 20480 #sync_binlog = 100

拷贝my_default.cnf文件到/etc/my.cnf如果提示是否覆盖,y

[root@localhost support-files]# cp my_default.cnf /etc/my.cnf cp:是否覆盖"/etc/my.cnf"? y

(6)修改mysql.server文件
进入/home/mysql-5.7/support-files目录修改mysql.server,修改内容如下找到mysqld_pid_file_path=修改MySQL的安装路径及数据路径

# The following variables are only set for letting mysql.server find things.# Set some defaults mysqld_pid_file_path= if test -z "$basedir" thenbasedir=/home/mysql-5.7bindir=/home/mysql-5.7/binif test -z "$datadir"thendatadir=/home/mysql-5.7/datafisbindir=/home/mysql-5.7/binlibexecdir=/home/mysql-5.7/bin elsebindir="$basedir/bin"if test -z "$datadir"thendatadir="$basedir/data"fisbindir="$basedir/sbin"libexecdir="$basedir/libexec" fi

(7)把启动脚本放到开机初始化目录。
进入/home/mysql-5.7/support-files目录下执行cp mysql.server /etc/init.d/mysql

[root@localhost support-files]# cp mysql.server /etc/init.d/mysql

(8)初始化 mysqld
进入到/home/mysql-5.7执行./bin/mysqld --initialize --user=mysql --basedir=/home/mysql-5.7/ --datadir=/home/mysql-5.7/data/

[root@localhost mysql-5.7]#./bin/mysqld --initialize --user=mysql --basedir=/home/mysql-5.7/ --datadir=/home/mysql-5.7/data/

(9)找出初始密码
初始化完成之后进入/home/mysql-5.7/data,查看cat mysqld.log日志找出随机生成mysql数据库登录的临时密码

[root@localhost data]# cat mysqld.log 2022-01-21T14:02:25.896593Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details). 2022-01-21T14:02:25.896962Z 0 [Warning] 'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' and 'ERROR_FOR_DIVISION_BY_ZERO' sql modes should be used with strict mode. They will be merged with strict mode in a future release. 2022-01-21T14:02:25.896973Z 0 [Warning] 'NO_AUTO_CREATE_USER' sql mode was not set. 2022-01-21T14:02:26.710078Z 0 [Warning] InnoDB: New log files created, LSN=45790 2022-01-21T14:02:26.791482Z 0 [Warning] InnoDB: Creating foreign key constraint system tables. 2022-01-21T14:02:26.902798Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: caa64450-54b2-11ea-8c3c-000c2923d700. 2022-01-21T14:02:26.904801Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened. 2022-01-21T14:02:28.091585Z 0 [Warning] CA certificate ca.pem is self signed. 2022-01-21T14:02:28.293469Z 1 [Note] A temporary password is generated for root@localhost: s7kh.#l8%O6p

找出临时密码:2022-01-21T14:02:28.293469Z 1 [Note] A temporary password is generated for root@localhost: s7kh.#l8%O6p密码就是:s7kh.#l8%O6p 记住密码随后登陆需要

(10)启动mysql服务
service mysql start

[root@localhost data]# service mysql start Starting MySQL.. SUCCESS!

(11)登录mysql

进入/home/mysql-5.7/bin执行./mysql -u root -p登录mysql,密码为初始密码


配置文件中的socket路径做下软连接

[root@localhost data]ln -s /home/mysql-5.7/mysql.sock /tmp/mysql.sock

(12)修改密码
set password=password(‘密码’);

mysql> set password=password('123456'); Query OK, 0 rows affected, 1 warning (0.00 sec)

(13)授权root权限使得外部地址使用root登陆
grant all privileges on . to root@’%’ identified by ‘123456’;

mysql> grant all privileges on *.* to root@'%' identified by '123456'; Query OK, 0 rows affected, 1 warning (0.00 sec)

(14)刷新权限:flush privileges;

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

(15)声明环境变量

[root@localhost home] vim /etc/profile #末尾添加一行 export PATH=$PATH:/home/mysql-5.7/bin[root@localhost home] source /etc/profile

参考文档:
https://blog.csdn.net/iT_MaNongking/article/details/104453370

总结

以上是生活随笔为你收集整理的Linux源码安装Mysql5.7的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。