王剑编程网

分享专业编程知识与实战技巧

mysq5.7.44源代码方式下载安装配置

mysq5.7.44源代码方式

下载安装配置

官网文档

https://dev.mysql.com/doc/refman/5.7/en/installing-source-distribution.html

mysql下载

打开mysql官网网站 https://www.mysql.com/,点击download进入下载页面。

在下载页面中找到mysql社区服务器版本,点击“MySQL Community (GPL) Downloads ?”进入社区服务器版的下载页面。

点击社区服务器版“MySQL Community Server”

点击存档“Archives”,选择操作系统,操作系统版本,找到源码。

源安装先决条件

gcc-c++编译器

yum install -y gcc-c++

CMake编译工具

CMake是一个跨平台的开源构建工具,用于构建mysql软件。他写CMakeLists.txt文件来描述项目的结构,用cmake生成makefile文件,共make编译使用。

yum install cmake

cmake官网下载
https://cmake.org/download/,源码编译见软件包中的readme文件。

查看cmake版本

cmake --version

make编译工具

一般系统自带这个编译工具,可以通过make --version查看版本。

OpenSSL 库

需要 SSL 库来支持加密连接、随机数生成。

yum install openssl-devel

Boost C++ 库

Boost是一个由C++社区开发和维护的开源C++库集合,旨在扩展C++语言的功能和性能。

构建 MySQL 需要 Boost C++ 库,必须安装Boost 1.59.0,安装 Boost 后,根据调用WITH_BOOST在CMake 时为选项设置的值告诉构建系统 Boost 文件的放置位置。

见以下两个选项:

-DDOWNLOAD_BOOST=1 \

-DWITH_BOOST=/usr/local/boost

ncurses 库

ncurses库是一个用于创建文本用户界面(TUI)的开发库。

yum install ncurses-devel

Perl库

如果您打算运行测试脚本,则需要 Perl。

mysql安装

创建mysql用户和组

groupadd mysql

useradd -r -g mysql -s /bin/false mysql

安装

解压

cd /soft

tar zxvf mysql-5.7.44.tar.gz

cd mysql-5.7.44

创建构建目录

mkdir build

cd build

构建make编译文件

cmake .. \

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \

-DMYSQL_DATADIR=/home/mysql \

-DSYSCONFDIR=/etc \

-DDEFAULT_CHARSET=utf8mb4 \

-DDEFAULT_COLLATION=utf8mb4_general_ci \

-DMYSQL_TCP_PORT=3306 \

-DDOWNLOAD_BOOST=1 \

-DWITH_BOOST=/usr/local/boost

说明:

-DCMAKE_INSTALL_PREFIX:配置安装到特定路径

-DMYSQL_DATADIR:配置数据目录

-DSYSCONFDIR:配置选项文件的目录

-DDEFAULT_CHARSET:配置mysql服务字符集,默认字符是latin1(cp1252西欧)字符集

-DDEFAULT_COLLATION:服务器排序规则。默认排序规则使用 latin1_swedish_ci。

-DMYSQL_TCP_PORT:服务器侦听 TCP/IP 连接的端口号。默认值为 3306。

-DDOWNLOAD_BOOST:检查是否有boost库

重新构建时运行以下命令清楚历史构建信息

make clean

rm -rf CMakeCache.txt

编译&安装

make

make install

mysql设置

创建mysql用户和组

groupadd mysql

useradd -r -g mysql -s /bin/false mysql

添加环境变量

echo 'export PATH=$PATH:/usr/local/mysql/bin' >> /etc/profile

source /etc/profile

echo $PATH

初始化数据目录

切换到mysql软件根目录

cd /usr/local/mysql

创建mysql-files目录

mkdir mysql-files

chown mysql:mysql mysql-files

mysql-files目录提供了一个方便的位置来用作系统变量的值 secure_file_priv,这将导入和导出操作限制到特定目录。

创建mysql配置文件

vi /etc/my.cnf

[mysqld]

basedir=/usr/local/mysql

datadir=/home/mysql

MySQL安装完成后,必须初始化数据目录。

bin/mysqld --defaults-file=/etc/my.cnf \

--initialize \

--user=mysql

--defaults-file:指定初始化时的配置文件,必须在选项的第一位。(配置文件中只能有basedir和datadir,其他选项需要在初始化后才能加入)

--initialize:初始化

--user:指定mysql软件运行用户

注意:初始化数据库目录时,除了使用--basedir、--datadir、--user选项外,不应该使用其他选项。其他选项可以在初始化完成后再my.cnf中指定,然后重启mysql服务。意思就是说初始化数据库目录时最多只能使用--basedir、--datadir、--user选项。

部署自动支持安全连接的服务器

bin/mysql_ssl_rsa_setup

启动服务器

bin/mysqld_safe --user=mysql &

对于使用 RPM 包安装 MySQL 的 Linux 系统,服务器启动和关闭是使用 systemd 而不是mysqld_safe管理的,并且 不安装mysqld_safe 。

开机启动启动服务器

cd support-files/

cp mysql.server /etc/init.d/mysql

chmod +x /etc/init.d/mysql

chkconfig --add mysql

启动停止和重启

service mysql start

service mysql stop

service mysql restart

修改root密码

登录mysql后运行如下命令修改密码,登录密码在初始化数据目录时有显示。

ALTER USER 'root'@'localhost' IDENTIFIED BY 'Welcome123#';

查看用户

查看默认存在的用户

select user,host from mysql.user;

使用systemd管理MySQL服务器

创建MySQL的systemd服务单元文件

你需要在“/etc/systemd/system/”创建一个“mysql.service”的文件,告诉systemd如何管理MySQL服务。

文件内容如下:

[Unit]

Description=MySQL Server

After=network.target

[Service]

ExecStart=/usr/local/mysql/bin/mysqld_safe --user=mysql

ExecStop=/usr/local/mysql/bin/mysqladmin shutdown

User=mysql

Group=mysql

Restart=always

[Install]

WantedBy=multi-user.target

说明:

After=network.target 是systemd服务单元文件中的一个指令,它指定了服务单元所依赖的其他单元。具体来说,network.target 是一个systemd的单元,表示网络服务已经启动并可用。

Restart=always 意味着当服务意外退出(即非正常退出)时,systemd会自动尝试重新启动该服务。

WantedBy=multi-user.target 是systemd服务单元文件中的一个指令,它定义了服务的启动级别(run level)。在systemd中,系统的启动级别通过一个称为 target 的单元来表示。multi-user.target 是系统的多用户运行级别,通常用于大多数服务器环境,表示系统已经启动到了可以提供多用户登录和运行多个服务的阶段。WantedBy=multi-user.target 指定了MySQL服务的启动级别,并告诉systemd在系统启动到多用户运行级别时启动MySQL服务。

重新加载systemd管理器配置

创建完服务单元文件后,需要通知systemd重新加载它的配置,以便识别到新的MySQL服务单元。

systemctl daemon-reload

使用systemd管理mysql

启动:systemctl start mysql

停止:systemctl stop mysql

开机自启:systemctl enable mysql

取消开机自启:systemctl disable mysql

查看状态:systemctl status mysql

配置mysql systemd选项

这个配置不是必须的,一般不配置

可以在
/etc/systemd/system/mysqld.service.d目录下创建一个配置文件,用于systemd管理mysql启用停止等操作的选项。

创建目录

mkdir -p /etc/systemd/system/mysqld.service.d

创建配置文件override.conf

systemd的override.conf 配置选项与my.cnf中的选项参数不一样,不能相互使用。配置文件的参数可以配置如下参数。注意这里是配置systemd启动mysql时使用的参数。

[Service]

LimitNOFILE=max_open_files

PIDFile=/path/to/pid/file

Nice=nice_level

LimitCore=core_file_limit

Environment="LD_PRELOAD=/path/to/malloc/library"

Environment="TZ=time_zone_setting"

说明:

PIDFile:指定进程 ID 文件

LimitNOFILE:设置 MySQL 服务器可用的文件描述符的数量

LimitCore:设置最大核心文件大小。

Nice:设置 MySQL 服务器的调度优先级

Environment:一些 MySQL 参数是使用环境变量配置的。

LD_PRELOAD:设置内存分配库。

TZ:设置默认时区。

systemd重新加载配置

systemctl daemon-reload

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言