“编译安装MySQL数据库”教程——复制粘贴即可完成

MySQL源码包资源下载链接

1.安装环境

[root@localhost system]# yum -y install \
ncurses \   ###字符终端处理工具
ncurses-devel \   ###字符终端处理工具
bison \  ###语法分析器,用于分析MySQL的语法是否正确
cmake

2.创建运行账户

[root@localhost system]#  useradd -s /sbin/nologin mysql
[root@localhost system]# tail -1 /etc/passwd
mysql:x:1002:1002::/home/mysql:/sbin/nologin

3.解压源码包

[root@localhost ~]# tar xf mysql-boost-5.7.20.tar.gz -C /opt
[root@localhost ~]# cd /opt
[root@localhost opt]# ls
mysql-5.7.20  nginx-1.15.9  rh

4.进行编译安装

> [root@localhost mysql-5.7.20]# cmake \      ##mysql需要用到cmake安装
> -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \  ##指定安装目录
> -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \  ##指定数据库连接文件,改文件不影响数据库的允许,但是会影响用户连接到数据库
> -DSYSCONFDIR=/etc \  ##指定配置文件存放位置
> -DSYSTEMD_PID_DIR=/usr/local/mysql \  ##指定PID号文件存放目录,该文件与sock文件相似,当数据库关闭时文件消失,而且不能同时存在两个PID文件,否则会故障,因此若数据库关闭后PID文件还存在,那么就会和开启后生成的新PID文件冲突
> -DDEFAULT_CHARSET=utf8  \  ##指定字符集
> -DDEFAULT_COLLATION=utf8_general_ci \   ##字符集
> -DWITH_INNOBASE_STORAGE_ENGINE=1 \  ##下面四条都是存储引擎
> -DWITH_ARCHIVE_STORAGE_ENGINE=1 \
> -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
> -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
> -DMYSQL_DATADIR=/usr/local/mysql/data \  ##数据存放位置
> -DWITH_BOOST=boost \  ##加载底层一个支持C++的运行库
> -DWITH_SYSTEMD=1   ##设置的主从ID
> 
> [root@localhost mysql-5.7.20]# make && make install

5.更改mysql目录下所有目录文件属性

[root@localhost mysql-5.7.20]# chown -R mysql:mysql /usr/local/mysql/  ##将mysql下的所有目录及文件属主和属组改为mysql

6.修改配置

[root@localhost mysql-5.7.20]# vi /etc/my.cnf  ##Linux系统中默认有这么个数据库配置文件,因此我们需要覆盖原有的内容
[client]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock

[mysql]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock

[mysqld]
user = mysql
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
character_set_server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket = /usr/local/mysql/mysql.sock
server-id = 1

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES
[root@localhost mysql-5.7.20]# chown mysql:mysql /etc/my.cnf

7.设置环境变量

[root@localhost mysql-5.7.20]# echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
[root@localhost mysql-5.7.20]# echo 'export PATH' >> /etc/profile
[root@localhost mysql-5.7.20]# source /etc/profile

8.初始化数据库

[root@localhost bin]# cd /usr/local/mysql    ##切记初始化要在mysql目录下,因为初始化的对象是mysql目录
[root@localhost mysql]# bin/mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data

9.设置系统服务

[root@localhost mysql]# cp usr/lib/systemd/system/mysqld.service /lib/systemd/system/ # 将mysql目录下的启动服务文件拷贝到系统启动服务目录下

10.开启MySQL数据库,并登入验证

[root@localhost mysql]# systemctl start mysqld.service
[root@localhost mysql]# systemctl status mysqld.service
● mysqld.service - MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; disabled; vendor preset: disabled)
Active: active (running) since Sun 2020-09-06 08:02:20 CST; 2s ago
Docs: man:mysqld(8)
http://dev.mysql.com/doc/refman/en/using-systemd.html
[root@localhost mysql]# mysqladmin -u root -p password ##设置密码,mysqladmin -u用户名 -p旧密码 password 新密码,初次设置时没有旧密码,因此直接回车就可以了, password后面填新密码
[root@localhost mysql]# mysql -u root -p ##登入mysql
[root@localhost mysql]# mysql -u root -p
Enter password: ##输入密码,登入成功

猜你喜欢

转载自blog.csdn.net/CN_LiTianpeng/article/details/108590835