Mac下 (Ubuntu也适用),源码安装Mysql 5.7.23

本文介绍如何从源码安装MySQL 5.7版本,并详细记录了安装过程中遇到的问题及其解决方案,包括配置数据目录权限、解决初始化错误等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 1. 下载

Select Version:
 [5.7.23]
Select Operating System:
 [Source Code]
Select OS Version:
 [Generic Linux(Architecture Independent)]

Compressed TAR Archive    5.7.23    49.5M
(mysql-5.7.23.tar.gz)    MD5: 3398bb99df0ca926f161d56e9cefa73d | Signature

[Compressed TAR Archive, Includes Boost Headers    5.7.23    46.8M    ]
(mysql-boost-5.7.23.tar.gz)    MD5: de108e7ff350aa10402a3e707a4b4c75 | Signature

要选择[Compressed TAR Archive, Includes Boost Headers    5.7.23    46.8M    ]版本,带boostheader的

  • 2. cmake

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_USER=_mysql \
-DMYSQL_TCP_PORT=3306 \
-DMYSQL_DATADIR=/usr/local/mysql/db_data -DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/Users/aa/Downloads/mysql-5.7.23/boost

ps:在ubuntu18下,会报错:Curses library not found.  Please install appropriate package

需要apt-get install libncurses5-dev

  • 3. 配置数据目录权限

chown -R _mysql:_mysql /usr/local/mysql/db_data

这一步很重要,不然第6步启动时,会报错(The server quit without updating PID file (/usr/local/mysql/db_data/xxx.pid).)

  • 4. 编译并安装

make
make install

  • 5. 初始化

# bin/mysqld --initialize --user=mysql --datadir=/usr/local/mysql/db_data --basedir=/usr/local/mysql/

bin/mysqld --initialize --user=mysql --datadir=/data/mysql --basedir=/usr/local/mysql/

如果报如下错:
./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/db_data --basedir=/usr/local/mysql/
2018-08-15T09:42:55.440966Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2018-08-15T09:42:55.443137Z 0 [ERROR] --initialize specified but the data directory has files in it. Aborting.
2018-08-15T09:42:55.443175Z 0 [ERROR] Aborting
解决:删除db_data目录,然后重新执行

成功log如下:

2018-08-15T09:44:08.453003Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2018-08-15T09:44:08.456327Z 0 [Warning] Setting lower_case_table_names=2 because file system for /usr/local/mysql/db_data/ is case insensitive
2018-08-15T09:44:08.456876Z 0 [Warning] One can only use the --user switch if running as root

2018-08-15T09:44:08.664378Z 0 [Warning] InnoDB: New log files created, LSN=45790
2018-08-15T09:44:08.715545Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2018-08-15T09:44:08.782728Z 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: c1c99242-a06f-11e8-9598-627c46ebc829.
2018-08-15T09:44:08.793014Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2018-08-15T09:44:08.794615Z 1 [Note] A temporary password is generated for root@localhost: qty4;7Apt5sx

  • 6. 启动mysql,报错如下

./mysql.server start
Password:
Starting MySQL
.Logging to '/usr/local/mysql/db_data/localhost.err'.
 ERROR! The server quit without updating PID file (/usr/local/mysql/db_data/localhost.pid).

 解决:将/usr/local/mysql/db_data,数据目录设置777

  • 7. 登录mysql

 mysql -uroot -pqty4;7Apt5sx
 use mysql, show databases 等语句都报错如下:
 ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

 做如下3部操作即可
 step 1: SET PASSWORD = PASSWORD('新密码');

 step 2: ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;

 step 3: flush privileges;

  • 8. 增加demo用户

insert into mysql.user(Host,User,authentication_string, ssl_cipher, x509_issuer, x509_subject)
values
("%","demo",password("demo"), '', '', '');

  • 9. 为用户授权

grant all privileges on *.* to demo@"%" identified by 'demo';
flush privileges;
 

在CentOS 7安装MySQL 5.7.23源码版本可以按照以下步骤进行: 1. 下载MySQL源码文件:你可以在MySQL的官方网站上下载稳定版本的源码文件,选择MySQL 5.7.23源码文件。 2. 安装编译MySQL所需的依赖项:打开终端并使用以下命令安装MySQL的编译依赖项: ``` sudo yum groupinstall "Development Tools" sudo yum install cmake sudo yum install ncurses-devel ``` 3. 解压源码文件:将下载的源码文件解压到一个自定义的目录中,例如~/mysql-src。 4. 创建MySQL编译构建目录:在终端中转到解压的源码文件目录,并创建一个新的目录用于构建MySQL源码: ``` cd ~/mysql-src mkdir build cd build ``` 5. 配置和编译MySQL:运行以下命令来配置MySQL的构建选项并编译源码: ``` cmake .. make ``` 6. 安装MySQL:运行以下命令以将编译后的MySQL安装到系统中: ``` sudo make install ``` 7. 配置MySQL:完成安装后,需要进行一些配置。可以使用以下命令复制MySQL的配置文件模板: ``` sudo cp ~/mysql-src/support-files/my-default.cnf /etc/my.cnf ``` 8. 初始化MySQL数据目录:使用以下命令来为MySQL创建一个数据目录并初始化数据: ``` sudo mkdir /var/lib/mysql sudo chown -R mysql:mysql /var/lib/mysql sudo /usr/local/mysql/scripts/mysql_install_db --user=mysql --datadir=/var/lib/mysql ``` 9. 启动MySQL服务:使用以下命令启动MySQL服务: ``` sudo /usr/local/mysql/bin/mysqld_safe --user=mysql & ``` 现在你应该成功地将MySQL 5.7.23源码安装在CentOS 7上,并启动了MySQL服务。你可以使用MySQL客户端连接到MySQL服务器并执行必要的配置和操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值