一、先默认安装一个mysql

已安装8.0版本

二、安装第二个mysql

1、至官网下载mysql源码

网址:https://dev.mysql.com/downloads/mysql/
选择OS版本,Mysql版本,这里以centos7+mysql5.7为例

备注:请选择Source Code,否则cmake会失败

拖动至最底下,选择mysql-5.7.28.tar.gz,大概为51.9M左右

2、上传至服务器解压

tar -zxvf mysql-5.7.28.tar.gz

3、环境安装

在安装的时,需用到boots
下载:wget http://www.sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz

tar -zxvf boost_1_59_0.tar.gzmv boost_1_59_0 /opt/boost

4、mysql安装

4.1、编译安装
cd mysql-5.7.28
cmake -DCMAKE_INSTALL_PREFIX=/opt/mysql5.7 -DMYSQL_DATADIR=/opt/mysql5.7/data -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 -DMYSQL_UNIX_ADDR=/opt/mysql5.7/mysqld.sock -DMYSQL_TCP_PORT=3307 -DWITH_DEBUG=0 -DENABLED_LOCAL_INFILE=1 -DWITH_READLINE=1 -DWITH_SSL=system -DWITH_ZLIB=system  -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/opt/boost
make && make install
4.2、创建my.cnf文件

进入/opt/mysql5.7

touch /opt/mysql5.7/my.cnf
[mysqld]user=mysqlport=3307basedir=/opt/mysql5.7datadir=/opt/mysql5.7/datasocket=/opt/mysql5.7/mysql.socklower_case_table_names=1default-storage-engine=INNODBcharacter_set_server=utf8mb4innodb_default_row_format=DYNAMICinnodb_large_prefix=ONinnodb_file_format=Barracudainnodb_log_file_size=2Gmax_connections=500innodb_buffer_pool_size=1G#validate_password=offsymbolic-links=0[client]default-character-set=utf8mb4socket=/opt/mysql5.7/mysql.sock[mysqld_safe]open-files-limit = 8192log-error=/var/log/mysqld5.7.logsocket=/opt/mysql5.7/mysql.sockpid-file=/opt/mysql5.7/mysqld.pid

注: 1、端口一定记得修改,不要与原来的冲突。
2、下面这些配置信息,是为了用在jira系统上。根据要求增加的配置内容

default-storage-engine=INNODBcharacter_set_server=utf8mb4innodb_default_row_format=DYNAMICinnodb_large_prefix=ONinnodb_file_format=Barracuda
4.3、分配权限
chown mysql.mysql -R /opt/mysql5.7cp /opt/mysql5.7/support-files/mysql.server /etc/init.d/mysql
chmod 755 /etc/init.d/mysql
4.4、修改配置并添加服务
vim /etc/init.d/mysql

添加以下文件

......basedir=/opt/mysql5.7datadir=/opt/mysql5.7/data......
  # Try to find basedir in /etc/my.cnf  conf=/opt/mysql5.7/my.cnf

修改以下参数

把$bindir/mysqld_safe --datadir=$datadir --pid-file=$server_pid_file $other_args >/dev/null 2>&1&替换为:$bindir/mysqld_safe --defaults-file=/opt/mysql5.7/my.cnf --datadir=$datadir --pid-file=$server_pid_file $other_args >/dev/null 2>&1 &

注释掉下面这句(前面加个#即可):

parse_server_arguments `$print_defaults $extra_args mysqld server mysql_server mysql.server`

保存退出并添加服务:

chkconfig --add /etc/init.d/mysql
4.5、启动mysql
/etc/init.d/mysql start

5、密码初始化

mysql5.7或以上版本的mysql,都会有一个初始化的密码,由于是非正常安装的,具体密码,也不知道是多少,也懒得去掉。就使用如下的方法,优雅的修改密码。

5.1、先停止mysql5.7版本的进程
/etc/init.d/mysql stop
5.2、通过mysqld_safe启动
/opt/mysql5.7/bin/mysqld_safe --defaults-file=/opt/mysql5.7/my.cnf --skip-grant-tables --skip-networking &

添加--skip-networking参数,让实例关闭监听端口,自然也就无法建立TCP连接,而只能通过本地socket进行连接。

5.3、修改密码
/opt/mysql5.7/bin/mysql -S /opt/mysql5.7/mysql.sock

mysql> update mysql.user set authentication_string=password('123456') where host='localhost' and user='root';
Query OK, 0 rows affected, 1 warning (0.00 sec)Rows matched: 1 Changed: 0 Warnings: 1
 mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

注:
5.7或以上的版本,使用:authentication_string
5.6或以下版本,请使用:password

5.4、退出并重启mysql5.7

退出:

/opt/mysql5.7/bin/mysqld_safe --defaults-file=/opt/mysql5.7/my.cnf --skip-grant-tables --skip-networking &
/etc/init.d/mysql start