Loading... <div class="tip inlineBlock success"> 由于工作的原因,必须使用国产化服务器(飞腾处理器ARM64位架构),所以系统中使用的相关组件,中间件,数据库等,全部得替换成ARM架构。 </div> ### 飞腾处理器 > FT-2000+/64 > > FT-2000+/64芯片集成64个飞腾自主研发的高能效处理器内核FTC662,采用乱序四发射超标量流水线,芯片采用片上并行系统(PSoC)体系结构,集成高效处理器核心、基于数据亲和的大规模一致性存储结构、层次二维Mesh互联网络,优化存储访问延时,提供业界领先的计算性能、访存带宽和IO扩展能力。芯片兼容64位ARMV8指令集。 该产品适用于高性能、高吞吐率的服务器领域,如对处理能力和吞吐力要求很高的行业大型业务主机、高性能服务器系统和大型互联网数据中心等。 ## 1.下载MySQL8.0 ### 1.1进入MySQL官网。 进入官网,点击DOWNLOAD超链接,进入下载页面。 选择社区版MySQL服务器 ![MySQL官网](https://ronins.cn/usr/uploads/2022/11/2434923997.png) ![选择社区版MySQL](https://ronins.cn/usr/uploads/2022/11/2804535761.png)![各版本说明](https://ronins.cn/usr/uploads/2022/11/3046730732.png) ### 1.2选择适用于所有操作系统的源代码 ![含有boost库的MySQL源码](https://ronins.cn/usr/uploads/2022/11/1099062373.png) ![不用登录Oracle账户](https://ronins.cn/usr/uploads/2022/11/1436838793.png) ### 1.3下载源代码 ```bash sudo apt-get -y install wget #安装wget工具 wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-boost-8.0.31.tar.gz #通过wget下载源代码 ``` ### 1.4解压源代码 ```bash tar -zxf mysql-boost-8.0.31.tar.gz ``` ## 2.安装MySQL编译先决依赖 ### 2.1根据MySQL官网手册,编译MySQL需要如下依赖 <div class="tip inlineBlock share"> 参考资料:MySQL官网。[MySQL源码安装先决条件](https://dev.mysql.com/doc/refman/8.0/en/source-installation-prerequisites.html) </div> | 名称 | 版本 | | ------------------ | --------------- | | CMake | | | make | 3.75 或更高版本 | | GCC 7.1 或 Clang 5 | | | C++ 或 C99 编译器 | | | SSL库 | | | ncurses库 | 2 | ### 2.2安装上述依赖 ```shell sudo apt-get -y install gcc g++ make cmake pkg-config libssl-dev openssl libncurses5-dev ``` ## 3.编译MySQL ### 3.1创建编译目录 <div class="tip inlineBlock info"> 根据[MySQL8官方手册](https://dev.mysql.com/doc/refman/8.0/en/source-configuration-options.html#option_cmake_force_insource_build),默认不可再源代码目录内编译 定义是否强制进行源内构建。建议使用源外构建,因为它们允许来自同一源的多个构建,并且可以通过删除构建目录来快速执行清理。要强制进行源内构建,请使用 [`-DFORCE_INSOURCE_BUILD=ON`](https://dev.mysql.com/doc/refman/8.0/en/source-configuration-options.html#option_cmake_force_insource_build). | 参数 | 描述 | 默认值 | 起始版本 | 废止版本 | | -------------------- | -------------------- | ------ | -------- | -------- | | FORCE_INSOURCE_BUILD | 是否强制进行源内构建 | OFF | 8.0.14 | | </div> 创建并进入编译目录 ```bash mkdir mysql-compile cd mysql-compile ``` ### 3.2通过cmake生成makefile ```bash cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DMYSQL_DATADIR=/usr/local/mysql/data \ -DWITH_BOOST=../mysql-8.0.31/boost \ ../mysql-8.0.31/ ``` ![cmake成功结果](https://ronins.cn/usr/uploads/2022/11/289906475.png) ### 3.3编译MySQL ```bash make && make install ``` ## 4安装MySQL ### 4.1初始化MySQL #### 4.1.1创建MySQL用户及MySQL用户组 ```bash groupadd mysql #创建MySQL用户组 useradd -r -g mysql -s /bin/false mysql #创建MySQL用户,并使其加入MySQL用户组里 ``` #### 4.1.2安装mysql命令 ```bash cp /usr/local/mysql/bin/mysql /bin #把mysql命令复制到bin目录下,方便到处可以执行mysql命令 ``` #### 4.1.3初始化MySQL ```bash /usr/local/mysql/bin/mysqld --initialize --user=mysql ``` 执行结果如下 > ```bash > /usr/local/mysql/bin/mysqld --initialize --user=mysql #初始化mysql > ------------------------------------------------------- > 2022-11-11T07:01:38.018726Z 0 [System] [MY-013169] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.31) initializing of server in progress as process 56517 > 2022-11-11T07:01:38.081961Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started. > 2022-11-11T07:01:38.574210Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended. > 2022-11-11T07:01:40.115544Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: 6y*bw5N2o+bL > ------------------------------------------------------- > ``` <div class="tip inlineBlock error"> 输入此命令后,会生成MySQL默认密码,必须记住此密码,后面连接MySQL需要用到此密码。 </div> #### 4.1.4测试启动MySQL ```bash /usr/local/mysql/bin/mysqld_safe --user=mysql & ``` #### 4.1.5测试连接MySQL ```bash mysql -uroot -p6y*bw5N2o+bL #其中,-u后面跟的内容为用户名,-p后面跟的内容为密码 ``` 执行结果如下 ```sh mysql -uroot -p6y*bw5N2o+bL ------------------------------------------------------- mysql: [Warning] Using a password on the command line interface can be insecure. Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 10 Server version: 8.0.31 Copyright (c) 2000, 2022, Oracle and/or its affiliates. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> ------------------------------------------------------- ``` #### 4.1.6创建MySQL配置文件 创建mysql启动配置文件my.cnf ```bash vim /etc/my.cnf ``` 将如下内容写入至my.cnf ```ini [mysqld] datadir=/usr/local/mysql/data socket=/tmp/mysql.sock port=3306 user=mysql [mysql.server] basedir=/usr/local/mysql ``` #### 4.1.7把MySQL加入systemctl 创建mysql.service ```bash vim /usr/lib/systemd/system/mysql.service ``` 写入配置文件 ```ini [Unit] Description=MySQL Server After=network.target After=syslog.target [Service] ExecStart=/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf Restart=on-failure [Install] WantedBy=multi-user.target ``` <div class="tip inlineBlock success"> 创建mysql.service文件后,就可以在系统中用`systemctl`命令去启动或关闭mysql服务 例如: ```bash systemctl status mysql #查看mysql启动情况 systemctl start mysql #启动mysql systemctl stop mysql #关闭mysql systemctl enable mysql #使mysql开机自启 ``` </div> ## 5.设置MySQL远程连接 ### 5.1用默认密码连接MySQL mysql -uroot -p6y*bw5N2o+bL ### 5.2修改mysql默认密码 使用上述默认密码连接完MySQL后,处于安全考虑,对于很多MySQL命令使不能使用的。若不更改密码,则会出现如下错误。 ```sql mysql> use mysql; No connection. Trying to reconnect... Connection id: 10 Current database: *** NONE *** ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement. ``` 修改默认密码 ```sql alter user user() identified by "123456"; ``` ### 5.3允许root用户可以进行MySQL远程连接 <div class="tip inlineBlock error"> 允许MySQL可以用root远程连接是非常非常非常危险的事情,不可在生产环境使用!!! 允许MySQL可以用root远程连接是非常非常非常危险的事情,不可在生产环境使用!!! 允许MySQL可以用root远程连接是非常非常非常危险的事情,不可在生产环境使用!!! 本例是开发环境,方便测试而为。 </div> ```sql update user set host = '%' where user = 'root'; ``` 刷新权限 ```sql flush privileges; ``` ### 5.4使用navcat连接测试 输入ip,端口,用户名,密码,测试连接,发现MySQL可以正常连接。 ![navcat连接测试](https://ronins.cn/usr/uploads/2022/11/3859703600.png) 最后修改:2023 年 03 月 26 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 0 如果觉得我的文章对你有用,请随意赞赏