linux下tar包mysql8安装(经过本人多次测试)



本文以mysql-8.0.28-linux-glibc2.12-x86_64.tar.xz为例 第一步:预置环境 1.1、将软件包上传到服务器上,上传完成后解压软件,解压后将软件重命名,最后将软件移 动到/usr/local下 tar -xvf mysql-8.0.28-linux-glibc2.12-x86_64.tar.xz mv mysql-8.0.28-linux-glibc2.12-x86_64 mysql-8.0.28 mv mysql-8.0.28 /usr/local/ 1.2、添加数据文件目录、日志文件目录,添加用户与用户组,修改文件夹及其下所有文件的 用户及用户组 mkdir -p /usr/local/mysql-8.0.28/logs cd /usr/local/mysql-8.0.28/logs mkdir err_logs slow_logs bin_logs touch err_logs/error.log #此处注意数据文件夹下不能有任何的文件或者文件夹 mkdir -p /data/mysql groupadd mysql #此处要建立系统账号加-r useradd -r -g mysql mysql chown -R mysql.mysql /data/mysql/ chown -R mysql.mysql /usr/local/mysql-8.0.28/ 第二部:初始化mysql 2.1、在/etc创建配置文件my.cnf 简版-my.cnf 完善版-my.cnf

将配置my.cnf文件放置在/etc下 **注意先配置配置文件初始化后mysql.service直接就能用,后配置配置文件还需要手动修改mysql.service 之后才能使用 2.2、执行初始化脚本,记录生成的临时密码 #注意  –initialize-insecure 初始化后无密码 –initialize 有密码 cd /usr/local/mysql-8.0.28 [root@localhost mysql-8.0.28]# ./bin/mysqld –initialize –user=mysql – basedir=/usr/local/mysql-8.0.28/ –datadir=/data/mysql –lower_case_table_names=1 – console 2022-06-30T15:10:43.926164Z 0 [Warning] [MY-010918] [Server] ‘default_authentication_plugin’ is deprecated and will be removed in a future release. Please use authentication_policy instead. 2022-06-30T15:10:43.927002Z 0 [System] [MY-013169] [Server] /usr/local/mysql- 8.0.28/bin/mysqld (mysqld 8.0.28) initializing of server in progress as process 1563 2022-06-30T15:10:44.341508Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started. 2022-06-30T15:10:55.721028Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended. 2022-06-30T15:11:25.709770Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: rX.hycK1lqy_ 上面的 “rX.hycK1lqy_” 既是生成的随机文件 2.3、启动mysql 配置service启动文件 cp support-files/mysql.server /etc/init.d/mysql chmod 755 /etc/init.d/mysql 将mysql服务加到系统服务中 chkconfig –add mysql 开机自启动 chkconfig mysql on #启动mysql service mysql start

./bin/mysql -uroot -p 若出现报错: ./bin/mysql: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory 执行:yum install libncurses* ( sudo apt install libncurses5) 不行的话再ln /usr/lib64/libtinfo.so.6 /usr/lib64/libtinfo.so.5 再执行 ./bin/mysql -uroot -p 若出现: [root@localhost mysql-8.0.28]# ./bin/mysql -uroot -p Enter password: ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: YES) 出现如上报错一般是配置文件不规范或者是没有权限导致的,经过测试配制文件可能性比较大,请用简版的配置 文件重新初始化mysql, 重新初始化mysql只需将datadir下的文件清空,重新执行初始化脚本就行 第二部:修改mysql密码,配置远程访问 通过上面的命令行登陆后进入mysql客户端后执行以下脚本: ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘123456’; use mysql; select Host,User from user; update user set Host=’%’ where User = ‘root’; flush privileges; 执行完以上命令后,需要配置防火墙 firewall-cmd –zone=public –add-port=3306/tcp –permanent #命令含义 –zone #作用域 –add-port=3306/tcp #添加端口,格式为:端口/通讯协议 –permanent #永久生效 重启防火墙 systemctl restart firewalld.service

添加软连接到 /usr/bin ,这样可以全局执行mysql命令 ln -fs /usr/local/src/mysql8.0/bin/mysql /usr/bin/ln -fs /usr/local/src/mysql8.0/bin/mysqldump /usr/bin/ 新增添加mysql开机启动文件到系统目录, 这样就能用系统命令操作mysql服务,用编辑工具编辑: 第一步编辑启动文件,添加内容: vim /usr/lib/systemd/system/mysql.service [Unit] Description = MySQL Server After = network.target After = syslog.target [Service] User = mysql Group = mysql Type = forking PermissionsStartOnly = true ExecStart = /usr/local/src/mysql8.0/support-files/mysql.server start ExecStop = /usr/local/src/mysql8.0/support-files/mysql.server stop ExecReload = /usr/local/src/mysql8.0/support-files/mysql.server restart LimitNOFILE = 5000 [Install]

WantedBy = multi-user.target 添加软连接到 /usr/bin ,这样可以全局执行mysql命令 ln -fs /usr/local/mysql8/bin/mysql /usr/bin/ ln -fs /usr/local/mysql8/bin/mysqldump /usr/bin/