Mysql安装:

下载解压安装


2017.4.16更新

说说遇到的坑吧,首先对mysql的make命令,真的是编译一天!编译了一天就不说了,最后还有奇奇怪怪的问题!结果还没有安装成功!

现在我决定换一个安装方式!

说一下我的操作系统是 CentOS7,查资料发现是CentOS7版本将MySQL数据库软件从默认的程序列表中移除,用mariadb代替了,这样,我们回归寻常路

CentOS 7的yum源中貌似没有正常安装mysql时的mysql-sever文件,需要去官网上下载

安装 mysql-community-server

1
2
3
[root@iZ2844brz0xZ ~]# wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
[root@iZ2844brz0xZ ~]# rpm -ivh mysql-community-release-el7-5.noarch.rpm
[root@iZ2844brz0xZ ~]# yum install mysql-community-server

成功安装之后启动mysql 服务

1
[root@iZ2844brz0xZ ~]# service mysqld start

初次安装mysql的时候,root账户是没有密码的

1
2
[root@iZ2844brz0xZ ~]# mysql -u root -p
Enter password:

要求输入密码的时候直接回车,因为没有密码,进入到mysql

1
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newPassword');

其中 newPassword 为你为 root 账户设置的密码。

若提示下面信息则表示设置成功

1
Query OK, 0 rows affected (0.02 sec)

退出,搞定~

1
mysql> exit

手动编译版本:

https://dev.mysql.com/downloads/mysql/,进入后在下方选择 source code 版本,选择 Generic Linux (Architecture Independent), Compressed TAR Archive,右键复制链接,用下面命令下载后得到 .tar.gz 的包

1
[root@iZ2844brz0xZ ~]# wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.18.tar.gz

如果提示wget命令为找到,则执行

1
[root@iZ2844brz0xZ ~]# sudo yum install wget

下载完用 ll 命令查看刚刚下载获得的 mysql-**.**.**.tar.gz 文件,用下面命令解压并解包它

1
[root@iZ2844brz0xZ ~]# tar -zxvf mysql-5.7.18.tar.gz

-z: 表示使用gzip的属性。
-x: 解开一个压缩文件的参数指令。
-v: 表示压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!
-f: 使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!

参考资料

接下来我们用yum来安装我们需要的依赖和工具。

1
[root@iZ2844brz0xZ ~]# sudo yum install cmake gcc-c++ ncurses-devel perl-Data-Dumper boost boost-doc boost-devel

Mysql安装:

编译安装

进入mysql目录

1
[root@iZ2844brz0xZ ~]# cd mysql-5.7.18/

用cmake命令编译,代码如下,后面的均为配置数据

1
[root@iZ2844brz0xZ ~]# cmake -DCMAKE_INSTALL_PREFIX=/home/mysql -DMYSQL_DATADIR=/home/mysql/data -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DMYSQL_TCP_PORT=3306 -DMYSQL_USER=mysql -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost

cmake命令结束后,使用make命令进行编译(过程有点慢)

1
[root@iZ2844brz0xZ mysql-5.7.18]# make

make编译完成后,用下面命令安装Mysql

1
[root@iZ2844brz0xZ mysql-5.7.18]# sudo make install

安装结束后,使用 mysqld 命令启动Mysql

1
[root@iZ2844brz0xZ mysql-5.7.18]# mysqld

启动后,使用mysql命令进入Mysql

1
[root@iZ2844brz0xZ mysql-5.7.18]# mysql

若显示

1
mysql>

表明进入mysql,安装成功。


题外话

在这里特别提醒, 对于mysql5.7.8的make编译, 如果是阿里云centos主机512M内存的, 会在make编译到45%左右的时候会报错, 这是内存不足所致。

那么设置2G交换分区来用下 :

1
2
3
4
5
[root@iZ2844brz0xZ /]# dd if=/dev/zero of=/swapfile bs=1k count=2048000 --获取要增加的2G的SWAP文件块(执行命令后需要等待一段时间)
[root@iZ2844brz0xZ /]# mkswap /swapfile -- 创建SWAP文件
[root@iZ2844brz0xZ /]# swapon /swapfile -- 激活SWAP文件
[root@iZ2844brz0xZ /]# swapon -s -- 查看SWAP信息是否正确
[root@iZ2844brz0xZ /]# echo "/var/swapfile swap swap defaults 0 0" >> /etc/fstab -- 添加到fstab文件中让系统引导时自动启动

注意, swapfile文件的路径在 /var/

编译完后, 如果不想要交换分区了, 可以删除:

1
2
[root@iZ2844brz0xZ /]# swapoff /swapfile
[root@iZ2844brz0xZ /]# rm -fr /swapfile

实际操作:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[root@iZ2844brz0xZ /]# dd if=/dev/zero of=/swapfile bs=1k count=2048000
2048000+0 records in
2048000+0 records out
2097152000 bytes (2.1 GB) copied, 42.2248 s, 49.7 MB/s
[root@iZ2844brz0xZ /]# mkswap /swapfile
Setting up swapspace version 1, size = 2047996 KiB
no label, UUID=5f8de87f-9057-4bf7-af9d-a09e1be7de56
[root@iZ2844brz0xZ /]# swapon /swapfile
swapon: /swapfile: insecure permissions 0644, 0600 suggested.
[root@iZ2844brz0xZ /]# swapon -s
Filename Type Size Used Priority
/swapfile file 2047996 0 -1
[root@iZ2844brz0xZ /]# echo "/var/swapfile swap swap defaults 0 0" >> /etc/fstab
[root@iZ2844brz0xZ /]#

参考资料 作者:zhuxiongxian


至此,Mysql安装结束