1.MySQL源码包获取
在MySQL官网下载你需要的二进制包版本。 官网下载链接:https://downloads.mysql.com/archives/community/ 本文是以mysql-5.7.28版本为例,所以也可以直接下载我这个版本。 链接:https://cdn.mysql.com/archives/mysql-5.7/mysql-boost-5.7.28.tar.gz
2.编译安装MySQL
2.1 下载源码包
代码语言:javascript复制wget https://cdn.mysql.com/archives/mysql-5.7/mysql-boost-5.7.28.tar.gz
2.2 安装依赖
代码语言:javascript复制yum -y install gcc gcc-c cmake openssl openssl-devel ncurses-devel autoconf
2.3 解压源码包
代码语言:javascript复制tar xf mysql-boost-5.7.28.tar.gz
2.4 创建程序目录
代码语言:javascript复制mkdir -p /application
2.5 预编译和编译安装 预编译,生成Makefile文件
代码语言:javascript复制cd mysql-5.7.28
cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.7.28
-DMYSQL_DATADIR=/application/mysql-5.7.28/data
-DMYSQL_UNIX_ADDR=/application/mysql-5.7.28/tmp/mysql.sock
-DDOWNLOAD_BOOST=1
-DWITH_BOOST=./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_DEBUG=0
编译安装
代码语言:javascript复制make && make install
2.6 创建软连接(也可以直接复制过去)
代码语言:javascript复制ln -s /application/mysql-5.7.28/ /application/mysql
2.7 创建数据库管理用户
代码语言:javascript复制useradd -M -s /sbin/nologin mysql
2.8 授权数据库目录
代码语言:javascript复制chown -R mysql.mysql /application/mysql-5.7.28/
chown -R mysql.mysql /application/mysql/
2.9 拷贝配置文件和启动脚本
代码语言:javascript复制cp /application/mysql/support-files/mysql.server /etc/init.d/mysqld
2.10 编写配置文件
代码语言:javascript复制[root@db05 ~]# vim /etc/my.cnf
[mysqld]
datadir=/application/mysql/data
socket=/application/mysql/tmp/mysql.sock
[client]
socket=/application/mysql/tmp/mysql.sock
2.11 创建相关目录,并授权
代码语言:javascript复制mkdir /application/mysql/{tmp,log}
chown -R mysql:mysql /application/mysql
2.12 初始化数据库 初始化
代码语言:javascript复制/application/mysql/bin/mysqld --initialize --user=mysql --basedir=/application/mysql --datadir=/application/mysql/data
获取密码 初始化成功后,在命令行输出的最后一行会显示密码
3.启动数据库 3.1 使用启动脚本启动mysql
启动
代码语言:javascript复制/etc/init.d/mysqld start
关闭
代码语言:javascript复制/etc/init.d/mysqld stop
3.2 使用systemd管理mysql服务 新建一个mysql服务的unit文件
代码语言:javascript复制[root@db02 ~]# 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=/application/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000
重载系统的unit文件
代码语言:javascript复制systemctl daemon-reload
启动服务
代码语言:javascript复制systemctl start mysqld
3.3 检查mysql服务是否启动 查看mysql的进程
代码语言:javascript复制[root@db02 ~]# ps -ef | grep [m]ysql
mysql 42951 1 0 14:48 ? 00:00:00 /application/mysql/bin/mysqld --defaults-file=/etc/my.cnf
查看端口
代码语言:javascript复制[root@db02 ~]# netstat -lntp | grep 3306
tcp6 0 0 :::3306 :::* LISTEN 42951/mysqld
3.4 登录数据库 使用绝对路径登录
代码语言:javascript复制[root@db02 ~]# /application/msyql/bin/msyql
配置环境变量,直接使用mysql命令 因为系统中/usr/bin/或者/usr/sbin/目录下默认是mysql的命令的,修改下PATH变量,让其可以直接使用mysql命令
添加环境变量脚本
代码语言:javascript复制echo "export PATH=/application/mysql/bin:$PATH" > /etc/profile.d/mysql.sh
#重新加载环境变量
source /etc/profile
登录mysql
代码语言:javascript复制[root@db02 ~]# mysql -uroot -p