首先卸载原有的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的更多相关文章

  1. 在 Ubuntu 上使用源码安装 OpenResty

    镜像下载.域名解析.时间同步请点击 阿里云开源镜像站 本文将介绍如何在 Ubuntu 上使用源码安装 OpenResty. 目标 Ubuntu 18.04 OpenResty 1.19.3.2 安装依 ...

  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一般版本比较旧,但 ...

  3. 使用Notepad++远程编辑Ubuntu上的源码

    简单搭建了在Windows上远程编辑Ubuntu Server 14.04上面源代码的环境,记录一下,给需要的人. Notepad++安装NppFTP 从插件菜单打开PluginManager,选中N ...

  4. CentOS 7.4 使用源码包编译安装MySQL 5.7.20

    使用yum安装的MySQL一般版本比较旧,但是运行稳定.如果想要尝试最新的功能或者需要指定特殊的功能的话,就需要手工进行编译安装了. 一.下载安装包 (一).先下载MySQL源码,网址为:https: ...

  5. RHEL5.8上SAMBA源码修改打包安装流程

    之前一直使用系统自带的SAMBA,近期需要对SAMBA代码做一些修改,然后还是打算用RPM包的方式来安装部署. 这个流程本身不复杂,在这里记录下来,免得在另外写说明文档. 关键词:RHEL5.8, s ...

  6. 简单说说Ubuntu利用bzr源码安装OpenERP7.0的操作步骤

    1.修改Ubuntu国内更新源,具体方法自己baidu.google. 修改更新源后,更新系统 sudo apt-get update sudo apt-get upgrade 复制代码 2.安装Po ...

  7. Ubuntu 环境 TensorFlow (最新版1.4) 源码编译、安装

    Ubuntu 环境 TensorFlow 源码编译安装 基于(Ubuntu 14.04LTS/Ubuntu 16.04LTS/) 一.编译环境 1) 安装 pip sudo apt-get insta ...

  8. [笔记] Ubuntu 18.04源码安装caffe流程

    虽然Ubuntu 18.04可以通过apt安装caffe,但是为了使用最新的代码,还是值得从源码安装一遍的. 安装环境 OS: Ubuntu 18.04 64 bit 显卡: NVidia GTX 1 ...

  9. 【随笔】从gitHub上获取源码

    有时候,需要从gitHub上获取源码,下面介绍几个方法: 1.获取链接: 打开gitHub代码库的页面,能在右边看到这个: 点击红圈里的标记,该链接就会复制下来. 然后,如果安装了小乌龟(Tortoi ...

随机推荐

  1. SpringBoot学习笔记(八):SpringBoot启动端口+访问路、SpringBoot配置文件yml、SpringBoot多环境区分、SpringBoot打包发布

    SpringBoot启动端口+访问路径 配置文件: server.port=9090 server.context-path=/springboot 现在只能用http://127.0.0.1:909 ...

  2. codeforces 1195D2-Submarine in the Rybinsk Sea

    传送门:QAQQAQ 题意:自己看 思路:就是一个类似于数位DP的东西... 统计a[i]数位分解的数在每一位出现的个数,即分两种讨论: 1.位数小于当前j,则j会出现在q+i,而且计算顺序互换会计算 ...

  3. vue 组件内引入外部在线js、css

    参考:https://blog.csdn.net/u010881899/article/details/80895661 例:引入element-ui js: mounted() { const oS ...

  4. Leetcode515. Find Largest Value in Each Tree Row在每个树行中找最大值

    您需要在二叉树的每一行中找到最大的值. 示例: 输入: 1 / \ 3 2 / \ \ 5 3 9 输出: [1, 3, 9] class Solution { public: vector<i ...

  5. 阿里云 Aliplayer高级功能介绍(六):进度条标记

    基本介绍 Aliplayer在进度条上提示时间和缩略图功能外,还可以进行视频内容的提示打点,当然不止是进度条上显示打点的内容,还提供一组接口,方便用户进行打点时间和内容的获取, 基本UI如下图所示: ...

  6. bzoj1706 relays 奶牛接力跑 线性代数

    题目描述 FJ的N(2 <= N <= 1,000,000)头奶牛选择了接力跑作为她们的日常锻炼项目.至于进行接力跑的地点 自然是在牧场中现有的T(2 <= T <= 100) ...

  7. Django项目:CMDB(服务器硬件资产自动采集系统)--04--04CMDB本地(Agent)模式客户端唯一标识(ID)

    # client.py # ————————01CMDB获取服务器基本信息———————— from src import plugins #__init__.py from lib.serializ ...

  8. 关于JEECMS套站工具的使用要点

      第一步:在[界面—资源]下面引入资源文件(js,css,img…) 第二步:在[界面—模板]下面将网站的入口页面写在[index]文件下 此时修改index页面中的 js,css,图片 的路径,路 ...

  9. Spring BatchSqlUpdate.updateByNamedParam例子

    关键在于定义参数和sql语句,代码如下: int dstColCount=dstColNamesList.size(); String insSql="insert into "+ ...

  10. linux命令统计文件中某个字符串出现的次数

    1.使用grep linux grep命令在我的随笔linux分类里有过简单的介绍,这里就只简单的介绍下使用grep命令统计某个文件这某个字符串出现的次数,首先介绍grep命令的几个参数,详细参数请自 ...