红联Linux门户
Linux帮助

ubuntu 15.04配置mysql 5.7.11 linux generic

发布时间:2016-03-27 10:15:29来源:linux网站作者:枯萎的海风

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


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

首先, 我们本来是打算使用源码来编译安装的, 可惜我们在http://dev.mysql.com/downloads/mysql/页面选择了 linux generic

ubuntu 15.04配置mysql 5.7.11 linux generic

于是导致我们解压完毕之后, 死活提示没有cmakelist, +_+!!
后来发现之后, 反正都下好了, 于是就使用linux generic 安装好了
下载链接:http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.11-linux-glibc2.5-x86_64.tar.gz
在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:

很实用的命令, Mark一下

certutil -hashfile D:\1.exe MD5
certutil -hashfile D:\1.exe SHA1
certutil -hashfile D:\1.exe SHA256

certutil -hashfile XXXX MD5

执行效果:

ubuntu 15.04配置mysql 5.7.11 linux generic

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 安装

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 的密码

ubuntu 15.04配置mysql 5.7.11 linux generic


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";

而在我们这里报错了:

ubuntu 15.04配置mysql 5.7.11 linux generic

Unkown colum ‘password’ in ‘field list’

为什么会这样呢?
我们查看下表的结构: select * from user;

ubuntu 15.04配置mysql 5.7.11 linux generic

果然没有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


本文永久更新地址:http://www.linuxdiyf.com/linux/19291.html