多余的话不说,就是源码安装 MySQL 5.6 ,机器内存 512 MB ,系统 CentOS 6.6 ,安装方式 minimal !
1、安装底层支持包
shell > yum -y install gcc gcc-c++ wget make cmake ncurses-devel bison
2、创建用户、组
shell > useradd -r mysql
3、下载、安装 Mysql
ftp://mirror.switch.ch/mirror/mysql/Downloads/MySQL-5.6/ ## 下载地址
ftp://mirror.switch.ch/mirror/mysql/Downloads/MySQL-5.6/mysql-5.6.25.tar.gz
shell > cd /usr/local/src
shell > tar zxf mysql-5.6.25.tar.gz
shell > cd mysql-5.6.25
shell > cmake .
shell > make ; make install
## Cmake 参数参考地址:
-DCMAKE_INSTALL_PREFIX=dir_name ## Mysql 安装位置( 默认位置 )
-DMYSQL_DATADIR=dir_name ## Mysql 数据库存放位置
-DMYSQL_TCP_PORT=port ## Mysql 监听端口
-DDEFAULT_CHARSET=utf8 ## Mysql 数据库默认字符集
-DSYSCONFDIR=dir_name ## Mysql 配置文件存放位置
-DMYSQL_UNIX_ADDR=/tmp/mysql_v5.sock ## SOCK 文件存放位置
## 等等... 还有好多,不一一列举了。cmake . 表示使用默认设置,可以看参考地址中的 default 选项
shell > cd /usr/local/
shell > chown -R root:mysql mysql/
shell > chown -R mysql mysql/data/
shell > cp mysql/support-files/mysql.server /etc/init.d/mysqld
shell > cp mysql/support-files/my-default.cnf /etc/my.cnf
shell > ./mysql/scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data/ --basedir=/usr/local/mysql/
shell > cd
shell > echo "PATH=$PATH:/usr/local/mysql/bin/" >> /etc/profile
shell > source /etc/profile
4、启动 Mysql
shell > service mysqld start
shell > netstat -lnpt | grep 3306
tcp 0 0 :::3306 :::* LISTEN 16206/mysqld
## 可以看到已经启动成功
## 下面这是我上次在阿里云主机上部署 Mysql ,启动时报的错:
Starting MySQL...The server quit without updating PID file [FAILED]cal/mysql/data/Mysql.com.pid).
## 无法启动,日志中报错大致意思为内存不足( 需要大于/等于 1G )~~ 这次没有问题..
## 后来我找了一个 Mysql 5.5 版本中提供的小内存的配置文件,就可以启动了!
5、安装完成,测试
shell > mysql ## 第一次登陆直接输入 mysql 命令即可登陆( 我记得 5.6 默认会有 root 密码的,存放在 root 用户下一个隐藏文件中,这次没有~~ )
shell > mysqladmin -uroot -p password 888888 ## 888888 为设置的新密码,下面直接回车
Enter password:
Warning: Using a password on the command line interface can be insecure. ## 修改密码,输出一个警告信息,提示密码放在命令行不安全~~
shell > mysql -uroot -p888888 ## 再次登陆 Mysql
mysql> update mysql.user set password=password('123456') where user='root';
Query OK, 4 rows affected (0.05 sec)
Rows matched: 4 Changed: 4 Warnings: 0
mysql> flush privileges;
Query OK, 0 rows affected (0.02 sec)
## 第二种修改密码的方式
mysql> grant all on *.* to root@'%' identified by '666'; ## 授权 root 用户可以从任意地址登陆,密码为 666
Query OK, 0 rows affected (0.04 sec)
shell > mysql -uroot -h 192.168.214.20 -p666
## grant 这种操作不需要执行 flush 操作,不过建议还是 flush 一下比较好~~
## 忘记 root 密码时的解决步骤
shell > /etc/init.d/mysqld stop
shell > /usr/local/mysql/bin/mysqld_safe --skip-grant-table & ## 跳过授权表启动 Mysql
shell > mysql ## 又可以欢快的无密码登陆数据库了~~
mysql> update mysql.user set password=password('123456') where user='root';
mysql> flush privileges;
Query OK, 0 rows affected (0.04 sec)
CentOS 7源码编译安装PHP5.6和Nginx1.7.9及MySQL(搭建LNMP环境)
CentOS 6.6 下源码编译安装MySQL 5.7.5
Ubuntu 12.04下源代码安装MySQL5.6以及Python-MySQLdb