Linux下,基于Centos源码安装MySql

Linux下,基于Centos源码安装MySql

安装所需的环境

#[root@localhost ~]# yum -y install make bison-devel ncures-devel libaio  
[root@localhost ~]# yum -y install libaio libaio-devel  
[root@localhost ~]# yum -y install perl-Data-Dumper  
[root@localhost ~]# yum -y install net-tools 
[root@localhost ~]# yum -y install gcc gcc-c++
[root@localhost ~]# yum -y install cmake
[root@localhost ~]# yum -y install ncurses-devel
[root@localhost ~]# yum -y install autoconf
[root@localhost ~]# yum -y install perl perl-devel

也可以一行
yum -y install gcc gcc-c++ cmake ncurses-devel autoconf perl perl-devel


必备的包和工具
  gcc/g++ :MySQL 5.6开始,需要使用g++进行编译。
  cmake  :MySQL 5.5开始,使用cmake进行工程管理,cmake需要2.8以上版本。
  bison  :MySQL语法解析器需要使用bison进行编译。
  ncurses-devel :用于终端操作的开发包。
  zlib    :MySQL使用zlib进行压缩

功能需要的包
  libxml  :用于XML输入输出方式的支持。
  openssl  :使用openssl安全套接字方式通信。
  dtrace  :用于诊断MySQL问题。

或者手动下载安装

bison下载地址:http://www.gnu.org/software/bison/  
[root@localhost ~]# tar zxvf bison-2.5.1.tar.gz   
[root@localhost ~]# cd bison-2.5.1   
[root@localhost ~]# ./configure   
[root@localhost ~]# make   
[root@localhost ~]# make install   

安装cmake(我安装的是3.15.4的版本)

cmake下载地址:http://www.cmake.org/

tar -xzvf cmake-3.15.4.tar.gz
cd cmake-3.15.4
./bootstrap
make   
make install   

# 更新一下配置
source /etc/profile

官网地址: https://dev.mysql.com/downloads/mysql/5.6.html#downloads
mysql源码下载地址:https://dev.mysql.com/downloads/mysql/5.6.html#downloads
源码包地址:https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.35.tar.gz

创建mysql安装目录以及数据存放目录

[root@localhost ~]# mkdir /usr/local/mysql
[root@localhost ~]# mkdir /usr/local/mysql/data

创建用户、用户组

[root@localhost ~]# groupadd mysql
[root@localhost ~]# useradd -r -g mysql mysql

安装

tar -zxvf mysql-5.6.46.tar.gz  
cd mysql-5.6.46
# 安装必要的配置
yum install openssl-devel

cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DINSTALL_DATADIR=/usr/local/mysql/data \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DENABLED_LOCAL_INFILE=1

如果是centos8以上会报错cmake: symbol lookup error: cmake: undefined symbol: archive_write_add_filter_zstd

因为centOS8(x86_64 或 aarch64) 系统下 yum或dnf 默认安装的 cmake-3.18.2-11.el8版本,安装后无法使用

解决办法:

第一种:
安装 libarchive   
dnf install  libarchive  或者 yum install  libarchive

第二种: 安装低版本或者高版本的 cmake

1.卸载cmake程序
yum remove cmake  或  rpm -e cmake
2.重新安装cmake,
网址:https://cmake.org/download/ 
3.创建软连接
ln -s  /xx-path/cmake   /usr/bin/cmake

make && make install

CMAKE参数说明:
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql //默认安装目录
-DINSTALL_DATADIR=/usr/local/mysql/data //数据库存放目录
-DDEFAULT_CHARSET=utf8     //使用utf8字符
-DDEFAULT_COLLATION=utf8_general_ci //校验字符
-DEXTRA_CHARSETS=all   //安装所有扩展字符集
-DENABLED_LOCAL_INFILE=1   //允许从本地导入数据
-DMYSQL_USER=mysql
-DMYSQL_TCP_PORT=3306
CMAKE详细配置请参照mysql官网
注意事项
如安装失败重新编译时,需要清除旧的对象文件和缓存信息。

# make clean
# rm -f CMakeCache.txt
# rm -rf /etc/my.cnf

配置mysql

检查系统是否已经有mysql用户,如果没有则创建  
[root@localhost mysql-5.6.46]# cat /etc/passwd | grep mysql  
[root@localhost mysql-5.6.46]# cat /etc/group | grep mysql  

修改权限

[root@localhost mysql-5.6.46]# chown -R mysql:mysql /usr/local/mysql  

切换到mysql目录

cd /usr/local/mysql  

设置权限等东西

chown -R mysql:mysql .(#这里是有个.的大家要注意#)
scripts/mysql_install_db --user=mysql  ( 为了安全安装完成后请修改权限给root用户)    (先进行这一步再做如下权限的修改)   
chown -R root:mysql .     (将权限设置给root用户,并设置给mysql组, 取消其他用户的读写执行权限,仅留给mysql "rx"读执行权限,其他用户无任何权限)  
chown -R mysql:mysql ./data    (数据库存放目录设置成mysql用户mysql组)  
chmod -R ug+rwx  .     (赋予读写执行权限,其他用户权限一律删除仅给mysql用户权限)  

将mysql的配置文件拷贝到/etc
将mysql的启动服务添加到系统服务中

cp support-files/my-default.cnf  /etc/my.cnf 
cp support-files/mysql.server  /etc/init.d/mysql

修改my.cnf

vi /etc/my.cnf  
在下面添加:
user=mysql      
datadir=/usr/local/mysql/data  
default-storage-engine=MyISAM

配置环境变量

vim/etc/profile
export MYSQL_HOME="/usr/local/mysql"
export PATH="$PATH:$MYSQL_HOME/bin"

source /etc/profile
启动mysql(还是在mysql的目录下进行的)

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

service mysql start  

service mysql stop 

service mysql restart
 开机自启动mysql服务
chkconfig --add mysql
chkconfig mysql on
修改密码
mysqladmin -u root password

为root添加远程连接的能力

mysql -u root -p 
mysql>use mysql;
mysql>desc user;
mysql> GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "123456"; //为root添加远程连接的能力。
mysql>update user set Password = password('xxxxxx') where User='root';
mysql>select Host,User,Password from user where User='root'; 
mysql>flush privileges;  //刷新权限
mysql>exit  //退出

创建用户并给它权限bus_scan_code_db数据库权限

mysql> insert into user(Host,User,Password) values("%","latteitcjz",password("123456"));
mysql> GRANT ALL PRIVILEGES ON bus_scan_code_db.* TO 'latteitcjz'@'%' IDENTIFIED BY '123456';
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON bsc.* TO root@'%' identified by 'root';
mysql> FLUSH PRIVILEGES;
CentOS升级到7之后,使用firewalld代替了原来的iptables。下面记录如何使用firewalld开放Linux端口

--zone     : 作用域,网络区域定义了网络连接的可信等级。这是一个一对多的关系,这意味着一次连接可以仅仅是一个区域的一部分,而一个区域可以用于很多连接

--add-port  : 添加端口与通信协议,格式为:端口/通讯协议,协议是tcp 或 udp

--permanent  : 永久生效,没有此参数系统重启后端口访问失效


# firewall-cmd --zone=public --add-port=3306/tcp --permanent
重启防火墙

# firewall-cmd --reload

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_43803285/article/details/116198649
今日推荐