Linux环境mysql5.6源码编译安装与初始化

1. Linux 环境准备

  • centos7 如果是虚拟机,尽量提高MySQL目的机的资源分配,如提供多核,分配更多的内存
  • iptables -L
  • getenforce 查看selinux状态,确保为disabled

2. 解决依赖关系

  • 安装开发工具包 yum groupinstall Development Tools
  • 或者直接安装 yum install gcc cmake make
  • 安装依赖关系yum intall libaio-devel ncurses-devel openssl-devel

3. 获取MySQL源代码并解压

wget https://mirrors.aliyun.com/mysql/MySQL-5.6/mysql-5.6.50.tar.gz
tar -xxvf mysql-5.6.50.tar.gz

4. cmake编译

cmake . -DCMAKE_INSTALL_PREFIX=/opt/application/mysql-5.6.51 \    #安装路径,反斜杠\表示换行
-DMYSQL_DATADIR=/opt/application/mysql-5.6.51/data \   #数据文件夹
-DMYSQL_UNIX_ADDR=/opt/application/mysql-5.6.51/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \   
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DENABLED_LOCAL_INFILE=ON \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
-DWITH_ZLIB=bundled \
-DWITH_SSL=bundled \   #尽管安装了openssl-devel 还是编译出错了
-DENABLED_LOCAL_INFILE=1 \
-DWITH_READLINE=1 \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLE_DOWNLOADS=1 \
-DWITH_DEBUG=0

注意:直接复制可能会出错,手动输入没有出错

5. make && make install

6. 创建软连接

ln -s /opt/application/mysql-5.6.51 /opt/application/mysql

7. 初始化数据库

  • 首先找到安装目录下的scripts文件夹,该文件夹下的脚本mysql_install_db
  • 指定初始化的源目录,数据存放目录以及初始化的使用的用户
/opt/application/mysql/scripts/mysql_install_db --basedir=/opt/application/mysql --datadir=/opt/application/mysql/data --user=mysql
  • 出现两个ok表示初始化正常

8.启动MySQL数据库

将support-files目录下面的mysql.service 拷贝到/etc/init.d目录里面去并且改变权限

cp  /opt/application/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod 700 /etc/init.d/mysqld

注意修改MySQL安装目录的属主和属组为mysql用户,否则启动不会成功

9.登录MySQL数据库

mysql -uroot -p

注:-u -p 后面不用加空格,默认的MySQL没有密码
如果找不到命令,需要将mysql命令所在的目录加入PATH环境变量

10.MySQL安全配置

  • mysqladmin命令修改登录密码
mysqlamdim -uroot -p password 

11.mysql多实例

  1. 配置my.cnf 配置文件,指定端口,数据存放目录等等
  2. 指定配置文件初始化,初始化时在第一个参数必须为配置文件
--defaults-file=xxxx/xxx.cnf
  1. 修改启动脚本
  • 拷贝mysql.server 到初始化数据库的文件下
  • 修改datadir为自己设置的路径
  • 在bindir后面添加参数–defaults-file=xxxx/xxx.cnf
$bindir/mysqld_safe --defaults-file="/application/mysql/3307/my.cnf" --datadir="$datadir" --pid-file="$mysqld_pid_file_path" $other_args >/dev/null &

12 . mysql多实例登录

注:得用套接字登录,而不能使用普通的方式登录

mysql -uroot -p -S /application/mysql/3307/mysql.sock
mysql -uroot -p -hmysql服务器主机ip -P端口

-S 后面的参数为相应的配置文件中使用的参数
修改密码:

mysqladmin -uroot -p password -S /application/mysql/3307/mysql.sock
  1. mysql多实例开机自启
echo /application/mysql/3307/msyql_3307 start >> /etc/rc.local
echo /application/mysql/3308/msyql_3308 start >> /etc/rc.local

注:re.local是一个软连接,主注意给源文件添加x可执行的权限


版权声明:本文为chemmhai原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。