ubuntu上用源码进行一键安装mysql
首先卸载原有的mysql:
首先查看自己的mysql有哪些依赖
#dpkg --list|grep mysql
先卸载
#sudo apt-get remove mysql-common
#sudo apt-get autoremove --purge mysql-server-5.0
再用dpkg --list|grep mysql查看,还剩什么就卸载什么
#dpkg --list|grep mysql
最后清楚残留数据:
#dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P
#---------------------------------------------------------------------------------------------------------->>
接下来以root身份安装mysql,同时,需要下载带有boost的mysql源码,

选择带有boost的源码包

将源码包下载到/usr/local/src/之后,进入/usr/local/src/,然后将下面的脚本mysql.sh也放在/usr/local/src/目录下面,然后执行即可:
# sh mysql.sh

########################################################
########################################################
脚本内容如下:mysql.sh
#!/bin/bash
#su root
set -x
cd /usr/local/src
####################
###################设置使用mysql服务的用户和组
user_name="mysql"
user_group="mysql"
#######################################
#######################################设置你要安装的mysql版本 ,即你下载的文件
mysqlboost_name="mysql-boost-5.7.22"
mysql_name="mysql-5.7.22"
######################################
######################################设置mysql的配置文件
mycnf_file="/etc/my.cnf" basedir="/usr/local/mysql"
datadir="/usr/local/mysql/data"
socket="/usr/local/mysql/mysql.sock"
db_file="/usr/local/mysql/data/db_file"
tmpdir="/usr/local/mysql/data/tmpdir"
innodb_ts="/usr/local/mysql/data/innodb_ts"
innodb_log="/usr/local/mysql/data/innodb_log"
bin_log="/usr/local/mysql/data/bin_log"
undo_log="/usr/local/mysql/data/undo_log"
relay_log="/usr/local/mysql/data/relay_log"
error_log="/usr/local/mysql/error_log" apt-get update
apt-get -y install make cmake gcc gcc-c++ wget ncurses ncurses-devel openssl openssl-devel libaio libaio-devel bison bison-devel perl perl-devel groupadd ${user_group}
useradd -g ${user_group} ${user_name} mkdir -p ${basedir}
mkdir -p ${socket}
mkdir -p ${datadir}
mkdir -p ${boostdir}
mkdir -p ${db_file}
mkdir -p ${tmpdir}
mkdir -p ${innodb_ts}
mkdir -p ${innodb_log}
mkdir -p ${bin_log}
mkdir -p ${undo_log}
mkdir -p ${relay_log}
mkdir -P ${error_log}
touch ${error_log}/error.log
chown -R ${user_name}:${user_group} ${basedir} tar -pxzvf ${mysqlboost_name}.tar.gz
cd ${mysql_name}
cmake . -DCMAKE_INSTALL_PREFIX=${basedir} -DMYSQL_DATADIR=${db_file} -DSYSCONFDIR=/etc -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_BOOST=boost -DWITH_MYISAM_STORAGE_ENGINE= -DWITH_INNOBASE_STORAGE_ENGINE= -DMYSQL_TCP_PORT= -DENABLED_LOCAL_INFILE= -DWITH_EMBEDDED_SERVER=OFF -DENABLED_LOCAL_INFILE= -DWITH_PARTITION_STORAGE_ENGINE= -DEXTRA_CHARSETS=gbk,gb2312,utf8,ascii -DWITH_FEDERATED_STORAGE_ENGINE= -DWITH_BLACKHOLE_STORAGE_ENGINE= -DWITHOUT_EXAMPLE_STORAGE_ENGINE= -DWITHOUT_PARTITION_STORAGE_ENGINE= -DWITH_FAST_MUTEXES= -DWITH_DEBUG= -DWITH_EMBEDDED_SERVER=
make && make install
######################################
######################################配置my.cnf文件
if [ -f "${mycnf_file}" ];then
echo "exists ${mycnf_file}"
rm -rf ${mycnf_file}
else
touch ${mycnf_file}
chmod ${mycnf_file}
fi
# client
echo "[client]" > ${mycnf_file}
echo "port=3306" >> ${mycnf_file}
echo "default-character-set=utf8" >> ${mycnf_file}
echo "socket=/tmp/mysql.sock" >> ${mycnf_file} # server
echo "[mysqld]" >> ${mycnf_file}
##########################################初次安装,使用skip-grant-tables来跳过授权,当修改好密码后请自行去掉该项
echo "skip-grant-tables" >> ${mycnf_file}
echo "basedir=${basedir}" >> ${mycnf_file}
echo "port=3306" >> ${mycnf_file}
echo "datadir=${db_file}" >> ${mycnf_file}
echo "socket=/tmp/mysql.sock" >> ${mycnf_file}
echo "max_connections=2000" >> ${mycnf_file}
echo "default-storage-engine=INNODB" >> ${mycnf_file}
echo "max_allowed_packet=16M" >> ${mycnf_file}
echo "innodb_buffer_pool_size=128M" >> ${mycnf_file}
echo "explicit_defaults_for_timestamp=true" >> ${mycnf_file}
echo "[mysqld_safe]" >> ${mycnf_file}
echo "log_error=${error_log}/error.log" >> ${mycnf_file}
echo "sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES" >> ${mycnf_file}
##############################################
##############################################拷贝mysql服务端的启动脚本
if [ -f "/etc/init.d/mysql-server" ];then
echo "/etc/init.d/目录中已经存在mysql-server文件,马上进行先删除,再拷贝"
rm -rf /etc/init.d/mysql-server
cp ${basedir}/support-files/mysql.server /etc/init.d/mysql-server
else
cp ${basedir}/support-files/mysql.server /etc/init.d/mysql-server
fi
#############################################
############################################修改环境变量配置
cat /etc/profile|grep ${basedir}/bin
if [ $? == ];then
echo "PATH 已经存在该路径"
else
echo "export PATH=${basedir}/bin:${PATH}" >> /etc/profile
fi
source /etc/profile
chown -R ${user_name}:${user_group} ${basedir}
#################################
#################################通过配置文件来初始化服务器
${basedir}/bin/mysqld --defaults-file=/etc/my.cnf --initialize --basedir=${basedir} --datadir=${db_file} --user=mysql ################################
################################启动服务器
service mysql-server restart
ps -ef |grep mysql
##############################
##############################配置开机自启动
接着需要配置/etc/my.cnf文件,配置如下:
[client]
port=
default-character-set=utf8
socket=/tmp/mysql.sock
[mysqld]
#skip-grant-tables
basedir=/usr/local/mysql
port=
datadir=/usr/local/mysql/data/db_file
socket=/tmp/mysql.sock
max_connections=
default-storage-engine=INNODB
max_allowed_packet=16M
innodb_buffer_pool_size=128M
explicit_defaults_for_timestamp=true
[mysqld_safe]
log_error=/usr/local/mysql/data/error.log
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
然后到/usr/local/mysql/bin目录下执行初始化操作:
1 ./mysqld --defaults-file=/etc/my.cnf
结果如下:
root@mi-OptiPlex-:/usr/local/mysql/bin# ./mysqld --defaults-file=/etc/my.cnf --initialize --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/db_file/ --user=mysql
--02T06::.153186Z [Warning] InnoDB: New log files created, LSN=
--02T06::.485746Z [Warning] InnoDB: Creating foreign key constraint system tables.
--02T06::.672726Z [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 2b277af4-cd4c-11e9-b986-8cec4bcad6ac.
--02T06::.720865Z [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
--02T06::.722060Z [Note] A temporary password is generated for root@localhost: 1SjpD:qZ0VrN
初始化注意事项:
1.如果出现如下信息:unknown variable 'defaults-file=/etc/my.cnf',请保证--defaults-file配置选项在最前面。
2.初始化最后一行是root用户密码(root@localhost: ,5j1Qj_LLAek)如图:
# service mysql-server start
#service mysql-server restart
#service mysql-server stop
# mysql -u root -p

ubuntu上用源码进行一键安装mysql的更多相关文章
- 在 Ubuntu 上使用源码安装 OpenResty
镜像下载.域名解析.时间同步请点击 阿里云开源镜像站 本文将介绍如何在 Ubuntu 上使用源码安装 OpenResty. 目标 Ubuntu 18.04 OpenResty 1.19.3.2 安装依 ...
- CentOS 7.2使用源码包编译安装MySQL 5.7.22及一些操作
CentOS 7.2使用源码包编译安装MySQL 5.7.22及一些操作 2018年07月05日 00:28:38 String峰峰 阅读数:2614 使用yum安装的MySQL一般版本比较旧,但 ...
- 使用Notepad++远程编辑Ubuntu上的源码
简单搭建了在Windows上远程编辑Ubuntu Server 14.04上面源代码的环境,记录一下,给需要的人. Notepad++安装NppFTP 从插件菜单打开PluginManager,选中N ...
- CentOS 7.4 使用源码包编译安装MySQL 5.7.20
使用yum安装的MySQL一般版本比较旧,但是运行稳定.如果想要尝试最新的功能或者需要指定特殊的功能的话,就需要手工进行编译安装了. 一.下载安装包 (一).先下载MySQL源码,网址为:https: ...
- RHEL5.8上SAMBA源码修改打包安装流程
之前一直使用系统自带的SAMBA,近期需要对SAMBA代码做一些修改,然后还是打算用RPM包的方式来安装部署. 这个流程本身不复杂,在这里记录下来,免得在另外写说明文档. 关键词:RHEL5.8, s ...
- 简单说说Ubuntu利用bzr源码安装OpenERP7.0的操作步骤
1.修改Ubuntu国内更新源,具体方法自己baidu.google. 修改更新源后,更新系统 sudo apt-get update sudo apt-get upgrade 复制代码 2.安装Po ...
- Ubuntu 环境 TensorFlow (最新版1.4) 源码编译、安装
Ubuntu 环境 TensorFlow 源码编译安装 基于(Ubuntu 14.04LTS/Ubuntu 16.04LTS/) 一.编译环境 1) 安装 pip sudo apt-get insta ...
- [笔记] Ubuntu 18.04源码安装caffe流程
虽然Ubuntu 18.04可以通过apt安装caffe,但是为了使用最新的代码,还是值得从源码安装一遍的. 安装环境 OS: Ubuntu 18.04 64 bit 显卡: NVidia GTX 1 ...
- 【随笔】从gitHub上获取源码
有时候,需要从gitHub上获取源码,下面介绍几个方法: 1.获取链接: 打开gitHub代码库的页面,能在右边看到这个: 点击红圈里的标记,该链接就会复制下来. 然后,如果安装了小乌龟(Tortoi ...
随机推荐
- opencv-Mat数据类型及位数总结
转自:http://blog.sina.com.cn/s/blog_662c7859010105za.html 在OpenCV里面,许多数据结构为了达到內存使用的最优化,通常都会用它最小上限的空间来分 ...
- 2006-2007 ACM-ICPC | POJ3380 POJ3384 POJ3385 水题题解
// CF比赛链接:http://codeforces.com/gym/101650 // POJ链接:http://poj.org/searchproblem?field=source&ke ...
- python3-常用模块之random
random 1.取随机小数 : 数学计算# print(random.random()) # 取0-1之间的小数# print(random.uniform(1,2)) # 取1-2之间的小数 2. ...
- CAS添加验证码功能
1. cas.war 下面的web-inf/web.xml lib添加 kaptcha.jar kaptcha.jar通过maven获取 <dependency> <group ...
- 近期开发storm遇到一些问题的解决点
storm开发解决问题点1.kafka消费速度跟不上问题 这个问题可以从加大topic partition进行解决,可以在topic正在运行时候运行命令 ./kafka-topics --alter ...
- 2019-8-31-dotnet-手动解决-json-解析中不合法字符串
title author date CreateTime categories dotnet 手动解决 json 解析中不合法字符串 lindexi 2019-08-31 16:55:58 +0800 ...
- 阿里云数据库再获学术顶会认可,一文全览VLDB最新亮点
一年一度的数据库领域顶级会议VLDB 2019于当地时间8月26日-8月30日在洛杉矶圆满落幕.在本届大会上,阿里云数据库产品团队浓墨登场,不仅有多篇论文入选Research Track和Indust ...
- python登录aspx网站
1.安装模块 2.准备aspx登录页面 3.示例代码 #coding:utf-8 import re from bs4 import BeautifulSoup import gzip import ...
- V8:V8(Javascript引擎)
ylbtech-V8:V8(Javascript引擎) Lars Bak是这个项目的组长,目前该JavaScript引擎已用于其它项目的开发.第一个版本随着第一个版本的Chrome于2008年9月2日 ...
- Life of Pi
·when you look into his eyes,you are seeing your own emotionsreflected back at you,nothing else. ·Go ...