一、mysql安装包下载
官网地址:https://dev.mysql.com/downloads/mysql/
下载步骤:
过滤操作系统版本
选择归档安装包
下载后,上传并md5校验安装包是否与上图官方提供的值一致,确保传输过程安装包无损害
[root@mydb1 ~]# cd /usr/local/software/ [root@mydb1 software]# md5sum mysql-8.0.22-el7-x86_64.tar.gz 52e312605f66aaaa0efcd272b9fc0a1f mysql-8.0.22-el7-x86_64.tar.gz
解压安装包
[root@mydb1 software]# tar -zxvf mysql-8.0.22-el7-x86_64.tar.gz [root@mydb1 software]# ln -s mysql-8.0.22-el7-x86_64/ mysql #创建链接,方便操作
二、mysql卸载说明
- 只有rpm安装方式是需要卸载旧版本的mysql,二进制安装和编译安装不需要,但是要注意端口冲突
- rpm若不卸载旧版本,在安装时,它会提示你mysql已安装,此时是无法再次安装的,只有通过yum更新版本
- 为了保证后续操作不会产生其他冲突,我们卸载原有的mysql
注:在卸载旧的mysql之前,注意备份数据
[root@mydb1 ~]# rpm -qa|grep mysql #查看是否已安装mysql数据库 [root@mydb1 ~]# rpm -qa|grep mysql|xargs rpm -e --nodeps #卸载mysql [root@mydb1 software]# rpm -qa|grep mariadb-libs|xargs rpm -e --nodeps #卸载mariadb
三、创建用户和组
新建组和用户
[root@mydb1 ~]# groupadd -g 2000 mysql [root@mydb1 ~]# useradd -u 2000 -g mysql -c "mysql server" -s /sbin/nologin mysql [root@mydb1 ~]# cat /etc/group|grep mysql mysql:x:2000: [root@mydb1 ~]# cat /etc/passwd|grep mysql mysql:x:2000:2000:mysql software:/home/mysql:/sbin/nologin
注:若组和用户已存在,则删除系统默认组和用户,再次创建!
删除组和用户
[root@mydb1 ~]# userdel mysql #删除用户同时会删除相应的组
赋权给mysql路径
[root@mydb1 ~]# cd /usr/local/software/ [root@mydb1 software]# chown -r mysql:mysql mysql*
初始化之前的目录结构
注:此时是没有data目录
四、mysql初始化
初始化之前先编辑好配置文件
[root@mydb1 ~]# vi /etc/my.cnf [root@mydb1 ~]# cat /etc/my.cnf 内容如下:(其他的根据实际需求配置) [mysqld] basedir = /usr/local/software/mysql datadir = /usr/local/software/mysql/data log_error = /usr/local/software/mysql/mysql-error.log port = 3306 socket = /usr/local/software/mysql/mysqld.sock pid_file = /usr/local/software/mysql/mysqld.pid character-set-server=utf8 lower_case_table_names=1 max_connections=1000 sql_mode='strict_trans_tables,no_zero_in_date,no_zero_date,error_for_division_by_zero,no_engine_substitution' [mysql] default-character-set=utf8 [client] default-character-set=utf8
初始化开始
[root@mydb1 ~]# /usr/local/software/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/software/mysql --datadir=/usr/local/software/mysql/data
初始化过程,输出日志文件中有root用户的临时密码
初始化之后的目录结构
五、mysql启动服务
方式1——init.d: 启动服务
[root@mydb1 ~]# cp /usr/local/software/mysql/support-files/mysql.server /etc/init.d/mysqld [root@mydb1 ~]# /etc/init.d/mysqld start
验证服务
[root@mydb1 ~]# ps -ef|grep mysql
解释说明
图中有两个进程,一个主进程,一个守护进程。当mysql意外停止时,守护进程会自动重启mysql服务
演示demo
[root@mydb1 ~]# kill -9 75341 #直接杀死进程
方式2——systemctl: 编辑启动配置文件
[root@mydb1 subsys]# vi /etc/systemd/system/mysqld.service 内容如下:(缺点:当kill掉时,无法自动启动恢复) [unit] description=mysql server documentation=man:mysqld(8) documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html documentation=https://www.freedesktop.org/software/systemd/man/systemd.unit.html after=network.target after=syslog.target [install] wantedby=multi-user.target [service] user=mysql group=mysql limitnofile = 5000 execstart=/usr/local/software/mysql/bin/mysqld --defaults-file=/etc/my.cnf
启动服务
[root@mydb1 ~]# systemctl start mysqld.service [root@mydb1 ~]# systemctl status mysqld.service
六、安全效率优化
启动权限限制
[root@mydb1 ~]# cd /usr/local/software/mysql/bin/ [root@mydb1 bin]# chmod 700 mysqld mysqld_safe [root@mydb1 bin]# ll mysqld mysqld_safe -rwx------. 1 mysql mysql 441010738 sep 24 03:42 mysqld -rwx------. 1 mysql mysql 29157 sep 24 03:18 mysqld_safe
注:现在只要root用户才能够启动停止mysql服务!
服务随系统启动
systemctl enable mysqld.service systemctl list-unit-files|grep mysql
七、配置环境变量
[root@mydb1 ~]# vi /etc/profile 追加内容如下: mysql_home=/usr/local/software/mysql export path=.:$path:$mysql_home/bin [root@mydb1 ~]# source /etc/profile #重新加载,生效!
八、修改root初始密码
创建socket链接
[root@mydb1 ~]# ln -s /usr/local/software/mysql/mysqld.sock /tmp/mysql.sock
使用临时密码登录
[root@mydb1 ~]# mysql -uroot -p enter password: welcome to the mysql monitor. commands end with ; or \g. your mysql connection id is 10 server version: 8.0.22 copyright (c) 2000, 2020, oracle and/or its affiliates. all rights reserved. oracle is a registered trademark of oracle corporation and/or its affiliates. other names may be trademarks of their respective owners. type 'help;' or '\h' for help. type '\c' to clear the current input statement. mysql>
注:当临时密码含有特使符号时,可能命令行输入会产生歧义。此时,交互时输入密码即可!
修改root密码
mysql> alter user root@'localhost' identified by 'mydb12@com'; query ok, 0 rows affected (0.00 sec) mysql> flush privileges; query ok, 0 rows affected (0.00 sec)
注:mysql8密码必须符合一定复杂度,否则无法修改;退出当前会话后,重启登录生效!
九、配置mysql远程登录
- 关闭防火墙或开放mysql端口
- 查看允许访问mysql的用户和地址
mysql> select user,host from mysql.user; +------------------+-----------+ | user | host | +------------------+-----------+ | mysql.infoschema | localhost | | mysql.session | localhost | | mysql.sys | localhost | | root | localhost | +------------------+-----------+ 4 rows in set (0.00 sec)
遇到的问题
mysql> grant all privileges on *.* to root@'%' identified by 'mydb12@com'; error 1064 (42000): you have an error in your sql syntax; check the manual that corresponds to your mysql server version for the right syntax to use near 'identified by 'mydb12@com'' at line 1
注:该错误并不是语法错误,是因为mysql该版本不支持直接创建用户和赋权,而需要分别实现
创建远程登录用户
mysql> create user 'root'@'%' identified by 'mydb12@com'; query ok, 0 rows affected (0.01 sec)
赋权
mysql> grant all privileges on *.* to 'root'@'%'; query ok, 0 rows affected (0.01 sec) mysql> flush privileges; query ok, 0 rows affected (0.01 sec)
到此这篇关于redhat7.3安装mysql8.0.22(二进制安装)的文章就介绍到这了,更多相关redhat7.3安装mysql8.0.22内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!