mysql源代码编译安装(可自拟版本)
centOS7 mysql5.6.40为例
准备
关闭防火墙的条件下
1.yum安装
yum install ncurses-devel libaio-devel gcc make cmake -y
2.rpm查询一下
rpm -qa ncurses-devel libaio-devel
3.创建mysql用户,用于授权目录
-s /sbin/nologin 不允许用户进行任何交互操作
-M 不要自动创建用户的 home 目录
mysql 为用户名
useradd -s /sbin/nologin -M mysql
查看用户是否已经存在
id mysql
安装步骤
在想要指定目录下载 这里我以/opt/mysql为例
cd /opt
mkdir mysql
cd mysql
1.下载源码
可以换别的版本mysql官方下载链接 找到对应tar.gz包 点击download后复制下载连接即可
wget https://cdn.mysql.com/archives/mysql-5.6/mysql-5.6.40.tar.gz
2.解压缩安装mysql
tar -zxvf mysql-5.6.40.tar.gz
3.进入mysql目录 cmake
cd mysql-5.6.40
cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.6.40 -DMYSQL_DATADIR=/application/mysql-5.6.40/data -DMYSQL_UNIX_ADDR=/application/mysql-5.6.40/tmp/mysql.sock -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 -DWITH_EXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_unicode_ci -DWITH_ZLIB=bundled -DWITH_SSL=bundled -DENABLED_LOCAL_INFILE=1 -DWITH_EMBEDDED_SERVER=1 -DENABLE_DOWNLOADS=1 -DWITH_DEBUG=0
4.cmake编译参数设置执行完后,就会自动生成makefile,可以执行
make
make install
5.创建软链接
ln -s /application/mysql-5.6.40/ /application/mysql
6.mysql初始化操作
/application/mysql/scripts/mysql_install_db --basedir=/application/mysql/ --datadir=/application/mysql/data --user=mysql
7.使用mysql初始化自动生成的管理脚本
cp /application/mysql/support-files/mysql.server /etc/init.d/mysqld
cp /application/mysql/support-files/my-default.cnf /etc/my.cnf
chmod 700 /etc/init.d/mysqld
8.创建tmp 修改属主属组 启动mysql
mkdir -p /application/mysql/tmp
chown -R mysql.mysql /application/mysql-5.6.40/
/etc/init.d/mysqld start
9.添加到环境变量
vim /etc/profile
在最下面添加一行
export PATH=/application/mysql/bin:$PATH
保存退出 重新读取以下配置文件
source /etc/profile
10.登录使用mysql
mysql -uroot -p
mysql安全配置
修改密码 默认没有密码,不安全
注意:要先输入你的密码 这里密码为空直接回车
[root@localhost bin]# mysqladmin -uroot -p password
Enter password:
New password:
Confirm new password:
将mysql添加到系统服务
先把mysql关掉
/etc/init.d/mysqld stop
vim /usr/lib/systemd/system/mysql.service
注意这里的路径要跟你的安装路径一致 pid文件路径可以通过 开启mysql服务时 ps -ef | grep mysql来查看
PIDFile=/application/mysql-5.6.40/data/localhost.localdomain.pid
ExecStart=/application/mysql-5.6.40/support-files/mysql.server start
[Unit]
Description=Mysql
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/application/mysql-5.6.40/data/localhost.localdomain.pid
ExecStart=/application/mysql-5.6.40/support-files/mysql.server start
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=false
[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemclt start mysql
远程登录授权
指定网段内192.168.70.*
grant all privileges on *.* to root@'192.168.70.%' identified by '123456';
flush privileges;
文章来源: 博客园
- 还没有人评论,欢迎说说您的想法!