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多实例
- 配置my.cnf 配置文件,指定端口,数据存放目录等等
- 指定配置文件初始化,初始化时在第一个参数必须为配置文件
--defaults-file=xxxx/xxx.cnf
- 修改启动脚本
- 拷贝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
- 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版权协议,转载请附上原文出处链接和本声明。