MySQL 基础之源码安装

MySQL 源码安装

1.安装编译代码需要的包

yum -y install make gcc-c++ cmake bison-devel  ncurses-devel

2.下载MySQL 5.6.28

wget http://cdn.mysql.com//Downloads/MySQL-5.6/mysql-5.6.28.tar.gz

3.编译安装

cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci

make && make install

4.错误处理

安装mysql出现Could NOT find Curses (missing CURSES_LIBRARY CURSES_INCLUDE_PATH),提示解决方法:

cd mysql-5.6.28
rm CMakeCache.txt
yum install ncurses-devel
#重新执行cmake命令

5.环境配置

  • 查看mysql用户及用户组
cat /etc/passwd 查看用户列表 
cat /etc/group 查看用户组列表
  • 如果没有就创建
groupadd mysql 
useradd -g mysql mysql
  • 修改/usr/local/mysql权限
chown -R mysql:mysql /usr/local/mysql
  • 配置my.conf, 解决socket链接错误的问题
cd mysql-5.6.28   
cp  support-files/my-default.cnf /etc/my.conf
vim /etc/my.conf 

增加:

[msyqld]
socket= /var/run/mysql/mysql.sock
[client]
default-character-set = utf8
socket= /var/run/mysql/mysql.sock
[mysql]
default-character-set = utf8
socket = /var/run/mysql/mysql.sock

或者只写一个socket,然后:

ln -s /var/run/mysql/mysql.sock /var/lib/mysql/mysql.sock
  • 初始化配置
cd /usr/local/mysql 
scripts/mysql_install_db \
--basedir=/usr/local/mysql \
--datadir=/data/mysql \
--user=mysql
  • 启动MySQL

添加服务,拷贝服务脚本到init.d目录,并设置开机启动:

cp support-files/mysql.server /etc/init.d/mysql 
chkconfig mysql on 
service mysql start --启动MySQL
  • 配置用户

MySQL启动成功后,root默认没有密码,我们需要设置root密码,设置之前,我们需要先设置PATH,要不不能直接调用mysql
修改/etc/profile文件,在文件末尾添加:

PATH=/usr/local/mysql/bin:$PATH
export PATH

关闭文件,运行下面的命令,让配置立即生效:

source /etc/profile

执行下面的命令修改root密码:

mysql
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('secret_password');

若要修改root密码

mysqladmin -u root password '123456'

若要设置root用户可以远程访问,执行

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'172.16.%' IDENTIFIED BY 'password' WITH GRANT OPTION;
  • 配置防火墙

防火墙的3306端口默认没有开启,若要远程访问,需要开启这个端口
打开/etc/sysconfig/iptables, 在“-A INPUT –m state –state NEW –m tcp –p –dport 22 –j ACCEPT”,下添加:

-A INPUT -m state --state NEW -m tcp -p -dport 3306 -j ACCEPT

然后保存,并关闭该文件,在终端内运行下面的命令,刷新防火墙配置:

service iptables restart