ubuntu 15.04 配置mysql 5.7.11 linux generic

32 篇文章 1 订阅
16 篇文章 0 订阅

最近突然想回顾一下数据库的相关内容, 于是开始倒腾了, 一路磕磕绊绊终于在我的ubuntu 15.04 上面把 mysql 5.7.11 给配置成功了。 这里记录一下配置的过程遇到的一些坑。

1. 下载相应的mysql版本的文件

首先, 我们本来是打算使用源码来编译安装的, 可惜我们在这个页面选择了 linux generic
这里写图片描述
于是导致我们解压完毕之后, 死活提示没有cmakelist, +_+!!
后来发现之后, 反正都下好了, 于是就使用linux generic 安装好了
下载链接
在linux中下载文件

wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.11-linux-glibc2.5-x86_64.tar.gz

我们本来是使用 secureCRT 连接着 ubuntu进行操作的, 可是发现这个ubuntu 经常性的会掉网, 下载tar 包的时候, 速度很慢, 只有几个b/s

2. 检查下载的文件的md5值

实在没办法, 我们在windows 端使用迅雷将文件下载完毕之后, 使用移动硬盘拷贝到linux 中, 不过当时还遇到一个问题, 在ubuntu中 出现这么一个错误:

tar: 跳转到下一个头
gzip: stdin: unexpected end of file
tar: Child returned status 1 
tar: Error is not recoverable:

意思很清楚就是文件损毁了呗, 可是我们一开始不知道, 后来比较md5之后才发现原来是从windows系统将文件拷贝到移动硬盘的过程中发生了错误, 导致md5发生改变, 可是拷贝出错windows居然也没有报错, 真是太可恨了!!!
Windows命令行查看文件的MD5

    certutil -hashfile XXXX MD5 

执行效果:
这里写图片描述

linux 中也有相应的md5查看指令 md5sum

3. linux 上拷贝硬盘中的数据

linux中使用硬盘需要对硬盘先进行挂载 mount
不过首先得先查看硬盘的设备名称 使用 fdisk -l 可以查看相应的设备名称, 发现设备名称为 /dev/sdb1
于是对他进行挂载, mount /dev/sdb1 /mnt/sata/
结果, 报错了, 说已经被挂载过了, 原因是ubuntu系统会只能的帮我们把新的硬盘给挂载进来, 那么问题来了, 怎么查看硬盘的挂载点呢?
可以使用df 指令, 查看硬盘信息。找到挂载目录之后, 就可以使用cp 指令很容易的实现拷贝了。
然后使用 tar -zxvf XXX -C /usr/local/mysql 解压到相应 /usr/local/mysql/ 路径下面.下面就可以进行安装了。

4. mysql 安装

我们参考的是这篇文档, 他是mysql 5.7.10 的安装, 和我们的版本有些不同, 还是遇到一些问题的。

1. 建立相应用户

    useradd -s /sbin/nologin mysql

s 表示用户默认的shell 脚本, 这里表示mysql 这个用户是不允许登陆的

2. 建立相应的目录

    mkdir -p /usr/local/mysql (这个步骤其实之前在解压的时候已经创建过了)
    chown -R mysql:mysql /usr/local/mysql

mkdir 中的 p 参数表明允许建立多个层级的目录结构
chown 中 R 表明 对这个目录下所有的文件都需要改变所有者为 mysql 组中的 mysql

3. 安装数据库

bin/mysqld --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ --secure-file-priv=/root/ --initialize

说明:
在初始化时如果加上 –initial-insecure,则会创建空密码的 root@localhost 账号
–secure-file-priv 指定密码文件夹位置 对应文件夹下就会有 .mysql_secret 文件

然而, 这里也报错了:

    error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory

就是说缺少动态链接库了, 装上就好了。

    sudo apt-get install libaio1
    sudo apt-get update

安装完动态链接库之后, 再执行一开始的那段配置代码就欧了, 得到临时的root@localhost 的密码
这里写图片描述

4.启动mysql服务和添加开机启动mysql服务

1. 添加开机启动

将启动脚本放到开机初始化目录中去

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

2. 启动mysql服务

    service mysql start

然而, 这里居然又报错了。

Failed to start mysql.service: Unit mysql.service failed to load: No such file or directory

最终通过参考这篇文档才解决了这个问题

    systemctl enable mysql.service

执行完这句指令后, 使用service mysql start, ps -ef | grep mysql 就可以看到mysql的信息了

5. 登陆mysql

我们上面安装mysql成功的时候得到了一个临时的root用户的密码, 在/root/.mysql_secret中也保存了一个root用户密码

    ./mysql -u root -p

无论输入哪个密码都无法登陆mysql服务器+_+~~

    mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: YES)'

于是按照网上说的:

    service mysqld stop
    mysqld_safe --skip-grant-tables &
    ./mysql -uroot -p
    >use mysql;

参考文章中说

    > update user set password=PASSWORD("newpass")where user="root";

而在我们这里报错了:
这里写图片描述
Unkown colum ‘password’ in ‘field list’

为什么会这样呢?
我们查看下表的结构: select * from user;
这里写图片描述
果然没有password字段, 不过authentication_string 这个字段很可疑, 于是我们修改指令:

    > update user set authenticaation_string=PASSWORD("123456")where user="root";

成功了!!!
然后

    > flush privileges; 更新权限
    > quit 退出
    service mysqld restart
    mysql -uroot -p新密码进入    

6 配置mysql 环境变量

    vim /etc/profile
    #在profile 的末尾加上下面两行
    export MYSQL_HOME="/usr/local/mysql"
    export PATH="$PATH:$MYSQL_HOME/bin"

使之生效即可

    . /etc/profile
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值