下载安装包
mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz
解压然后移动到想要安装的目录
tar -zxvf /www/mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.7.44-linux-glibc2.12-x86_64/ mysql5.7
创建数据库存放目录 并指定用户及用户组
mkdir data57
chown mysql:mysql data57/ -R
指定mysql安装目录用户组 参照已有mysql
chown root:mysql mysql5.7/ -R
配置文件 以版本号区分my57.cnf
1.直接创建并修改配置文件,配置端口及socket文件路劲、basedir/datadir等
[client]
#password = your_password
port = 3307
socket = /tmp/mysql57.sock
[mysqld]
port = 3307
socket = /tmp/mysql57.sock
basedir = /www/server/mysql5.7
datadir = /www/server/data57
...
...
[mysql]
socket = /tmp/mysql57.sock
no-auto-rehash
[myisamchk]
key_buffer_size = 64M
sort_buffer_size = 1M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout
将mysql安装目录的mysql.server 同步到/etc/init.d/下 以便于管理mysql5.7服务
对应修改mysql.server 中的basedir/datadir等配置
if test -z "$basedir"
then
basedir=/www/server/mysql5.7 配置为当前新版本mysql的安装目录
bindir=/www/server/mysql5.7/bin
if test -z "$datadir"
then
datadir=/www/server/mysql5.7/data
fi
sbindir=/www/server/mysql5.7/bin
libexecdir=/www/server/mysql5.7/bin
else
bindir="$basedir/bin"
if test -z "$datadir"
then
datadir="$basedir/data"
fi
sbindir="$basedir/sbin"
libexecdir="$basedir/libexec"
fi
...
...
...
conf=/etc/my57.cnf 直接配置conf变量,以免启动报错
# Get arguments from the my.cnf file,
# the only group, which is read from now on is [mysqld]
if test -x "$bindir/my_print_defaults"; then
print_defaults="$bindir/my_print_defaults"
else
# Try to find basedir in /etc/my.cnf
print_defaults=
if test -r $conf
then
subpat='^[^=]*basedir[^=]*=\(.*\)$'
dirs=`sed -e "/$subpat/!d" -e 's//\1/' $conf`
for d in $dirs
do
d=`echo $d | sed -e 's/[ ]//g'`
if test -x "$d/bin/my_print_defaults"
then
print_defaults="$d/bin/my_print_defaults"
break
fi
done
fi
# Hope it's in the PATH ... but I doubt it
test -z "$print_defaults" && print_defaults="my_print_defaults"
fi
2 .或从其他地方同步至当前服务器
[root@localhost etc]# rsync -av my57.cnf root@*****:/etc/
同步 mysql.server文件,此文件应该没啥用,跟/etc/init.d/下的文件一样,自启动用的
[root@localhost support-files]# rsync -av mysql.server root@*****:/www/
[root@localhost init.d]# rsync -av mysql5.7 root@*****:/etc/init.d/
初始化mysql
/www/server/mysql5.7/bin/mysqld --defaults-file=/etc/my57.cnf --basedir=/www/server/mysql5.7 --datadir=/www/server/data57 --initialize --user=mysql
初始化后,会出现临时的root密码(下最后一行) 记录 然后登录mysql
...
2024-05-20T06:19:10.812967Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2024-05-20T06:19:11.820634Z 0 [Warning] A deprecated TLS version TLSv1 is enabled. Please use TLSv1.2 or higher.
2024-05-20T06:19:11.820653Z 0 [Warning] A deprecated TLS version TLSv1.1 is enabled. Please use TLSv1.2 or higher.
2024-05-20T06:19:11.823871Z 0 [Warning] CA certificate ca.pem is self signed.
2024-05-20T06:19:12.115757Z 1 [Note] A temporary password is generated for root@localhost: po#2lp9s/epF
启动mysql
创建了/etc/init.d/mysql5.7 可以用service xxx 来启动
service mysql5.7 start
登录mysql 并改密码 初始密码有时效性
执行以下命令 然后登录 好像跟用localhost连接有关
/www/server/mysql5.7/bin/mysql_config_editor set --socket=/tmp/mysql57.sock
[root@localhost bin]# mysql -hlocalhost -P3307 -uroot -ppo#2lp9s/epF
进入后 执行
alter user 'root'@'localhost' identified by '您的root密码';
此时,应该可以用视图工具连接mysql了
设置开机启动mysql5.7
chkconfig --list
chkconfig --add mysql5.7
chkconfig mysql5.7 On