首先卸载原有的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. 70 二叉树的层次遍历 II

    原题网址:http://www.lintcode.com/zh-cn/problem/binary-tree-level-order-traversal-ii/ 给出一棵二叉树,返回其节点值从底向上的 ...

  2. Android基础控件EditText

    1.常用属性 <!--selectAllOnFocus 获得焦点后全选组件内所有文本内容--> <!--inputType 限制输入方式--> <!--singleLin ...

  3. mtk 的conferrence call建立流程

    (重点看main_log与) 抓mtk log: 1.*#*#82533284#*#*      进入抓log UI 2.*#*#825364#*#*      进入工程模式 3.进入"Lo ...

  4. 转载:Jsoup常用方法功能介绍(html解析器)

    jsoup 的作用:是一款 Java 的HTML 解析器,可直接解析某个URL地址.HTML文本内容.它提供了一套非常省力的API,可通过DOM,CSS以及类似于JQuery的操作方法来取出和操作数据 ...

  5. 2019-10-31-C#-dotnet-获取整个局域网的-ip-地址

    title author date CreateTime categories C# dotnet 获取整个局域网的 ip 地址 lindexi 2019-10-31 08:57:55 +0800 2 ...

  6. SVN 环境搭建

    安装配置 安装环境 #查看系统版本环境 [root@svn ~]# cat /etc/redhat-release CentOS release 6.7 (Final) [root@svn ~]# u ...

  7. Gym100889L

    Gym100889Lhttps://vjudge.net/problem/341988/origin题目大意:有一个n*n的图,m条双向边(没有重边自环),求从每个节点出发走k条路后到其他所有节点的最 ...

  8. webapp中<meta>与css代码部署

    1.页面头部标签申明 <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" id="te ...

  9. css的层叠性+继承性+优先级+权重

    一.层叠性 1.含义 多种css样式叠加,浏览器处理冲突的能力. 2.原则 1>一般情况下,若出现冲突,会按照css的书写顺序,以最后的样式为准 2>样式不冲突,就不会层叠 二.css的继 ...

  10. 常见的5个runtime exception

    NullPointException(空指针异常),ArrIndexOutOfBoundsException(数组越界异常),ClassCastException(类型转换异常),ClassNotFo ...