Centos7环境下编译安装Mysql
一、.Mysql编译安装
1.1 环境介绍
当前环境是虚拟机中最小化安装的Centos7, 防火墙开启状态。 安装Mysql5.5.62仅用于学习
[root@localhost MySQL-5.5.62]# uname -a
Linux localhost.localdomain 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
[root@localhost MySQL-5.5.62]# cat /etc/centos-release
CentOS Linux release 7.7.1908 (Core)
[root@localhost MySQL-5.5.62]#
1.2 检查冲突
查看是否存在mariadb
、旧的mysql
rpm -qa | grep mariadb
rpm -qa | grep mysql
rpm -e --nodeps 包全名
存在/etc/my.cnf,则需要先删除
1.3 安装依赖
[root@localhost ~]# yum -y install make gcc-c++ cmake bison-devel ncurses-devel perl openssl-devel autoconf
- mysql5.5之后需要用cmake支持编译安装
- openssl-devel 编译时需要,要不然会报错
- autoconf 此包安装时会安装Data:Dumper模块 , 数据库初始化 时需要Dumpe
1.4 准备用户和组
[root@localhost ~]# groupadd mysql
[root@localhost ~]# useradd mysql -g mysql -M -s /sbin/nologin
1.5 下载源码包
怎么下载这里就不说了
[root@localhost ~]# tar -zxvf mysql-5.6.46.tar
[root@localhost ~]# cd mysql5.6.46
1.6 开始编译
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DSYSCONFDIR=/etc \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DMYSQL_UNIX_ADDR=/tmp/mysqld.sock \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci
我在这里编译时报错:
CMake Error at cmake/ssl.cmake:66 (MESSAGE):
Please install the appropriate openssl developer package.
Call Stack (most recent call first):
cmake/ssl.cmake:260 (FATAL_SSL_NOT_FOUND_ERROR)
CMakeLists.txt:482 (MYSQL_CHECK_SSL)
出现这个原因时:需要安装openssl-devel 这个依赖
#如果需要重新编译还需要删除CMakeCache.txt
才能重新编译。
rm -rf CMakeCache.txt
1.7 编译完成后安装
make && make install
我用的是虚拟机性能不好,时间约20分钟
1.8 目录授权
chown mysql:mysql /usr/local/mysql
1.9 安全初始化
此处注意执行脚本的方式和初始化参数的正确性,不然会造成初始化的不成功,不会创建mysql库。注意仔细看初始化的成功提示。
cd /usr/local/mysql
./scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data
报错:
FATAL ERROR: please install the following Perl modules before executing ./scripts/mysql_install_db:
Data::Dumper
查阅资料,解决方法如下:安装autoconf库
yum -y install autoconf
#此包安装时会安装Data:Dumper模块
安装完成后,再次运行上面脚本命令成功
2.0 修改配置文件
配置前先必须从解压的源码包目录内拷贝配置文件到etc目录下,my.cnf是mysql的主配置文件
cp support-files/my-default.cnf /etc/my.cnf
vim /etc/my.cnf[mysqld] 添加:
datadir=/usr/local/mysql/data
default-storage-engine=InnoDB
lower_case_table_names=1
2.2 环境变量
vim /root/.bash_profile
PATH=$PATH:$HOME/bin为:
在默认的变量冒号后面添加下面两个路径:
/usr/local/mysql/bin
/usr/local/mysql/lib
最终效果:
PATH=$PATH:$HOME/bin:/usr/local/mysql/bin:/usr/local/mysql/lib
刷新配置
source /root/.bash_profile #使刚才的修改生效
2.3 传统方式启动
bin/mysqld_safe --user=mysql &
报错1:
运行上面63行命令遇到问题:-bash: mysqld_safe: command not found
查找到的解决方案:
原因:这是由于系统默认会查找
/usr/bin
下的命令,如果这个命令不在这个目录下,当然会找不到命令,我们需要做的就是映射一个软链接到/usr/bin目录下,相当于建立一个链接文件。首先得知道mysql命令或mysqladmin命令的完整路径,比如mysql的路径是:
/usr/local/mysql/bin/mysql
ln -s /usr/local/mysql/bin/mysql* /usr/bin
mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
报错2:
200601 15:39:52 mysqld_safe error: log-error set to '/var/log/mariadb/mariadb.log', however file don't exists. Create writable for user 'mysql'.
解决:根据提示,只需要在对应的目录下创建报错中指定的文件,即:
cd /var/log/
mkdir mariadb
cd mariadb/
touch mariadb.log
重新尝试启动服务,该问题解决。
报错3:
200602 19:59:38 mysqld_safe Logging to '/usr/local/mysql/data/pokes01.err'.
200602 19:59:38 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data
解决方法:
查看
/etc/my.cnf
下的[mysqld]
中有没有datadir=/usr/local/mysql/data/
数据目录的路径,如果没有填上。然后在进行数据库初始化。即可
初始化数据库之后就可以登录了。mysql5.6以前的版本是没有密码的,直接回车即可登录:
mysql -uroot -p
2.4 制作服务启动
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
相关的命令:
- service mysql start
- service mysql restart
- service mysql enable
有点像centos6启动服务
2.5 密码修改开启远程访问
[root@localhost mysql]# mysql -u root mysql
mysql> use mysql;
mysql> desc user;
mysql> GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "root"; //为root添加远程连接的能力
mysql> update user set Password = password('123456') where User='root'; //设置root用户密码
mysql> select Host,User,Password from user where User='root';
mysql> flush privileges;
mysql> exit
远程访问报错
在这里我在开启远程访问之后,还是出现了问题:
用sqlyog登录出现登录被拒绝,提示错误1045问题??
1045 Access denied for user 'root'@'%' (using password:YES)
解决方法:
进入MySQL的安装目录,找到自己的MySQL的my.cnf
文件。找到[mysqld]
关键字,下面添加skip-grant-tables
。然后保存重启MySQL即可。
Centos7环境下编译安装Mysql相关推荐
- linux 下脚本安装 mysql_linux(centos7)下编译安装mysql(数据库)一键安装详解+脚本文件...
一.下载源文件 官网下载地址: https://downloads.mysql.com/archives/community/ 二.安装前准备 (1).开始之前先把虚拟机内存调大,避免安装时间过长和卡 ...
- debian编译mysql_MySQL数据库之Debian 6.02下编译安装 MySQL 5.5的方法
本文主要向大家介绍了MySQL数据库之Debian 6.02下编译安装 MySQL 5.5的方法 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 环境 : Debian 6.02 ...
- linux mysql5.6编译_Linux 环境下编译安装MySQL5.6的笔记记录
一.首先搭建好Linux环境,我这边使用的是redhat enterprise 6.5,并且建议磁盘划分逻辑卷,以便后期的扩容工作. 二.环境搭建好了之后,我们就要去准备MySQL的安装文件,到现在为 ...
- 区块链 Hyperledger - 超级账本项目在centos7环境下的安装与部署
Hyperledger - 超级账本项目在centos7环境下的安装与部署 Hyperledger 项目是开源界面向开放.标准区块链技术的首个重要探索,在 Linux 基金会的支持下,吸引了众多科技和 ...
- Linux下编译安装MySQL安装
Linux下编译安装MySQL安装 博主邮箱www.zzher@foxmail.com qq:1102471911 编译安装MySQL 准备工作: 1.获得以下所需的源代码包,并存放在/usr/l ...
- ubuntu16.04 在cuda9.0环境下编译安装opencv2.4.13.7
ubuntu16.04 在cuda9.0环境下编译安装opencv2.4.13.7 安装步骤: 1.安装cuda9.0:https://blog.csdn.net/zhuangwu116/articl ...
- 在 CentOS 5.4 下编译安装MySQL时
在 CentOS 5.4 下编译安装MySQL时 在 CentOS 5.4 下编译安装MySQL时出错: /bin/rm: cannot remove `libtoolt': No such file ...
- mysql5.6.22编译安装教程_Linux CentOS6.0下编译安装MySQL 5.6.22
Linux CentOS6.5下编译安装MySQL 5.6.22[给力详细教程] 一.编译安装MySQL前的准备工作 安装编译源码所需的工具和库(安装过程注意有没出错) yum install gcc ...
- RHEL5.6环境下yum安装MySQL
RHEL5.6环境下yum安装MySQL记录,2017年2月20日 1.卸载原有的MySQL rpm -qa命令查询是否安装了MySQL [root@localhost mysql]# rpm -qa ...
最新文章
- SQL Server不能启动
- css3 @keyframes、transform详解与实例
- ubuntu21.04下VSCode无法输入中文解决方法:應用商店安裝的話需要重裝
- Unity中date相关问题
- iOS App 启动优化
- app个人健康管理系统开源_开源会促进心理健康吗?
- 2020-5-9 开始阅读深入理解java虚拟机
- 数据分类是否一定要求样本均衡
- 提升数据建模的10种技术措施
- idea 修改hosts
- 如何将两个PDF合并成一个?PDF合并方法
- 华为热设计工程师待遇_【华为热设计工程师面试】华为热设计工程师的笔试经历-看准网...
- 飞机大战C++源代码
- JAVA计算机毕业设计智慧茶园综合管理系统Mybatis+源码+数据库+lw文档+系统+调试部署
- Python中一些少数人知晓且有趣的特性
- IrisSkin 皮肤
- 把ipa包上传入AppStore
- 三足鼎立写博赚钱之道--献给2010年初互联网扫黄运动被错杀的兄弟
- RS232/RS485信号转12路模拟信号 隔离D/A转换器WJ34
- 迁移学习在乳腺癌检测中的应用