暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

麒麟OS+鲲鹏920芯片环境下 MySQL5.7.40 源码安装实践

原创 懿霖 2023-01-19
2289

MySQL5.7.40 源码安装

  1. 环境信息确认

  1. 卸载系统自带mysql
rpm -qa | grep mysql rpm -qa | grep mariadb yum remove mariadb-libs-5.5.60-1.el7\_5.x86\_64
复制

  1. 下载MySQL源码包
wget [https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.40.tar.gz](https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.40.tar.gz)
wget http://sourceforge.net/projects/boost/files/boost/1.59.0/boost\_1\_59\_0.tar.gz
tar xf mysql-5.7.40.tar.gz
tar xf boost\_1\_59\_0.tar.gz -C /usr/local
复制

boots一组C++ 库的集合,提供了线性代数、伪随机数生成、多线程、图像处理、正则表达式、单元测试等功能。

上传到/opt/mysql5

  1. 安装依赖

yum install -y git gcc gcc-c++

yum install -y perl-Data-Dumper bzip2

yum install -y ncurses ncurses-devel ncurses-base ncurses-libs

yum install -y openssl openssl-devel openssl-libs

yum install -y bzip2 bzip2-devel

yum install -y libtirpc libtirpc-devel

yum install -y readline readline-devel

复制
  1. 添加MySQL用户

添加mysql用户及目录规划

groupadd mysql

useradd -M -g mysql -s /bin/bash mysql

  1. 规划目录

1软件目录basedir /usr/local/mysql-5.7.40

2数据目录datadir /usr/local/mysql-5.7.40/data

3日志目录 /usr/local/mysql-5.7.40/log/

4其他目录 /usr/local/mysql-5.7.40/tmp

# 软件目录(为mysql安装目录创建软链接或改目录名)


mkdir -p /usr/local/mysql-5.7.40/data

mkdir -p /usr/local/mysql-5.7.40/tmp

mkdir -p /usr/local/mysql-5.7.40/log

复制

#更改目录属组为mysql用户```

touch /usr/local/mysql-5.7.40/log/mysqld.log

chown -R mysql.mysql /usr/local/mysql-5.7.40

  1. 进行cmake编译mysql源文件

cd /opt/mysql5/mysql-5.7.40

cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql-5.7.40 \

-DMYSQL_DATADIR=/usr/local/mysql-5.7.40/data \

-DMYSQL_UNIX_ADDR=/usr/local/mysql-5.7.40/tmp/mysql.sock \

-DDOWNLOAD_BOOST=0 \

-DWITH_BOOST=/opt/mysql5/mysql-5.7.40/boost/boost_1_59_0 \

-DDEFAULT_CHARSET=utf8 \

-DDEFAULT_COLLATION=utf8_general_ci \

-DWITH_EXTRA_CHARSETS=all \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DWITH_FEDERATED_STORAGE_ENGINE=1 \

-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \

-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \

-DWITH_ZLIB=bundled \

-DWITH_SSL=system \

-DENABLED_LOCAL_INFILE=1 \

-DWITH_EMBEDDED_SERVER=1 \

-DENABLE_DOWNLOADS=1 \

-DWITH-SYSTEMD=1 \

-DWITH_DEBUG=0

  1. 编译并安装

[root@db02 ~/mysql-5.7.40]# make

# make可以用来批处理.c或.cpp文件的,它从makefile中读取相应指令,然后编译。

[root@db02 ~/mysql-5.7.40]# make install



\# make install将 make 生成的文件安装到系统的对应目录中,比如从github上下载下来一个依赖库的安装包,解压后经过上面几步,该依赖库的对应头文件和库文件就安装到系统中了。

#这条命令来进行安装(当然有些软件需要先运行 make check 或 make test来进行一些测试),这一步一般需要你有 root 权限(因为要向系统写入文件)

![](https://oss-emcsprod-public.modb.pro/image/editor/20230119-261ebb84-1f96-4f11-a28f-7803f0bee6fd.)

1.  初始化数据库(初始化mysql数据库(建立默认的库和表))

_【初始化 注:1、初始化时,data目录必须为空,2、将随机生成的登录密码记录下来】_

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

![](https://oss-emcsprod-public.modb.pro/image/editor/20230119-05a8fa02-51be-4877-b98d-729e4ba0ce31.)

\[Note\] A temporary password is generated for root@localhost: **t(uqi+9aQk3E**

![](https://oss-emcsprod-public.modb.pro/image/editor/20230119-8a4a19be-b010-43b9-b956-36bae614dac8.)

![](https://oss-emcsprod-public.modb.pro/image/editor/20230119-386f53f9-787b-4b1a-9b12-bb1f566cf55a.)

1.  编辑MySQL配置文件

_关于MySQL对应配置文件my.cnf 默认搜索顺序_

_/etc/my.cnf /etc/mysql/my.cnf /data/mysql/data/my.cnf ~/.my.cnf_

vim /etc/my.cnf

\[mysqld\]

basedir=/usr/local/mysql

datadir=/usr/local/mysql/data

socket=/usr/local/mysql/tmp/mysql.sock

pid-file=/usr/local/mysql/tmp/mysqld.pid

port=3306

character-set-server=utf8mb4

log-error=/var/log/mysql/mysqld.log

\[mysql\]

character-set-server=utf8mb4

socket=/usr/local/mysql/tmp/mysql.sock

\[client\]

character-set-server=utf8mb4

socket=/usr/local/mysql/tmp/mysql.sock

1.  MySQL启停
2.  使用systemctl管理启动停止

vim /usr/lib/systemd/system/mysqld.service

\[Unit\] Description=MySQL Server

Documentation=man:mysqld(8)

Documentation=https://dev.mysql.com/doc/refman/en/using-systemd.html

After=network.target After=syslog.target

\[Install\]

WantedBy=multi-user.target

\[Service\]

User=mysql

Group=mysql

**ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf**

LimitNOFILE = 5000

重新加载:systemctl daemon-reload

启动:systemctl start mysqld.service

停止:systemctl stop mysqld.service

启动:systemctl restart mysqld.service

启动:systemctl status mysqld.service

![](https://oss-emcsprod-public.modb.pro/image/editor/20230119-5f386626-da58-4434-8e0e-d4c4cc3f1049.)

![](https://oss-emcsprod-public.modb.pro/image/editor/20230119-202866b0-1675-4c7b-baa9-f31167d4f37c.)

1.  命令启动停止

启动:mysqld\_safe &

![](https://oss-emcsprod-public.modb.pro/image/editor/20230119-4b0bfc71-3c56-46dc-932a-6e9df5cd5470.)

停止:mysqladmin -uroot -p shutdown

![](https://oss-emcsprod-public.modb.pro/image/editor/20230119-0953e3fb-6ced-4d24-a02e-b08e85abb6a0.)

1.  服务启动停止

/usr/local/mysql/support-files/mysql.server start

/usr/local/mysql/support-files/mysql.server stop

![](https://oss-emcsprod-public.modb.pro/image/editor/20230119-0738d396-87a2-451a-a89a-78f7be87fd04.)

1.  设置MySQL开启自动启动

将服务文件拷贝到init.d下,并重命名为mysql

cp mysql/support-files/mysql.server /etc/init.d/mysqld

赋予可执行权限

chmod +x /etc/init.d/mysqld

1.  测试连接
```bash

\[root@host-mysql ~\]# mysql -uroot -p

Enter password:

Welcome to the MySQL monitor. Commands end with ; or \\g.

Your MySQL connection id is 2

Server version: 5.7.40-log

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>

mysql> show databases;

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

mysql>

mysql> alter user 'root'@'localhost' identified with mysql\_native\_password by 'Gauss\_234';

Query OK, 0 rows affected (0.01 sec)

mysql> create user 'root'@'%' identified with mysql\_native\_password by 'Gauss\_234';

Query OK, 0 rows affected (0.00 sec)

mysql> grant all privileges on \*.\* to 'root'@'%' with grant option;

Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

mysql>
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information\_schema |
| mysql |
| performance\_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
mysql>
mysql>
mysql> exit
Bye

复制

最后修改时间:2023-12-25 23:25:51
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论