Centos8上安装Mysql8.X
一、下载Mysql
-
下载地址:https://dev.mysql.com/downloads/mysql/
二、将压缩包通过ftp软件服务器的目标位置:并解压
1、我的是放在:/root/softwares
2、解压为tar文件:xz -dev mysql-8.0.27-linux-glibc2.12-x86_64.tar.xz
3、解压mysql-8.0.27-linux-glibc2.12-x86_64.tar 到 目录 /opt下面,注意不要放在root及其子目录下,会有权限问题。
3.1 解压并移动到 opt 目录下: tar -xvf mysql-8.0.27-linux-glibc2.12-x86_64.tar -C /opt/
3.2 重命名:mv mysql-8.0.27-linux-glibc2.12-x86_64 mysql8
三、配置日志目录及mysql环境变量
1、进入mysql解压后的目录mysql8,并创建存放mysql日志的目录
-
-
- cd /opt/mysql8/
- mkdir data
-
2、配置mysql环境变量
- vim /etc/profile
- MYSQL_HOME=/opt/mysql8/bin
- PATH=$PATH:$MYSQL_HOME
- export MYSQL_HOME PATH
配置完成后重载:source /etc/profile
四、创建mysql用户组及用户
mysql是出于安全考虑,默认拒绝用root账号启动mysql服务。所以我们创建一个mysql用户组和mysql的用户。
- groupadd mysql
- useradd -g mysql mysql
- mysql用户关联并修改权限
五、安装依赖包:
查询是否安装libaio依赖包:yum search libaio
如果没安装,可以用下面命令安装:yum install libaio
六、初始化mysql
初始化mysql:mysqld --user=mysql --basedir=/opt/mysql8 --datadir=/opt/mysql8/data --initialize
注意1:初始化成功之后会有一个临时密码,红色框内的是mysql数据库登录的临时密码,保存备用,每个人安装生成的临时密码不一样。
注意2:如果在解压压缩包的时候,没有移动到opt文件夹下,直接放在root文件夹下,回报权限错误
重点知识2: --initialize和--initialize-insecure区别
--initialize: 会生成一个12位,4种密码复杂度临时管理员密码. 第一次登陆需要修改.
--initialize-insecure:管理员密码为空.
七、启动mysql
sh /opt/mysql8/support-files/mysql.server start
上面启动mysql服务命令是会报错的,因为没有修改mysql的配置文件,报错内容大致如下
修改/opt/mysql8/support-files/mysql.server 配置文件
接下来:
cp /opt/mysql8/support-files/mysql.server /etc/init.d/mysqld
chmod 755 /etc/init.d/mysqld
将mysql服务加到系统服务中
chkconfig --add mysqld
开机自启动
chkconfig mysqld on
八、修改配置文件
这里下载的mysql8.0.27版本并没有这个my.cnf文件,因此直接创建的。
vim /etc/my.cnf
[client] port=3306 socket=/tmp/mysql.sock [mysqld] basedir=/opt/mysql8 datadir=/opt/mysql8/data socket=/tmp/mysql.sock user=mysql port=3306 character_set_server=utf8 # symbolic-links=0 bind-address=0.0.0.0 [mysqld_safe] log-error=/opt/mysql8/data/error.log pid-file=/opt/mysql8/data/mysqld.pid tmpdir=/tmp
然后,授权文件my.cnf
九、mysql启动服务
十、登录mysql
mysql -u root -p
如果报错:
解决方案:sudo ln -s /usr/lib64/libtinfo.so.6.1 /usr/lib64/libtinfo.so.5
十一、修改密码
use mysql
这时候报了一个错:
解决办法:
修改初始密码:alter user 'root'@'localhost' identified by 'Se7eN521';
刷新:flush privileges;
至此,完成mysql8.0.23的安装。
十二、Navicat连接
如果出现这个错误。
解决方法
1、在安装Mysql数据库的主机上登录root用户:
mysql -u root -p
依次执行如下命令:
use mysql;
select host from user where user='root';
可以看到当前主机配置信息为localhost.
2.将Host设置为通配符%
Host列指定了允许用户登录所使用的IP,比如user=root Host=192.168.1.1。这里的意思就是说root用户只能通过192.168.1.1的客户端去访问。
user=root Host=localhost,表示只能通过本机客户端去访问。
而%是个通配符,如果 Host=192.168.1.%,那么就表示只要是IP地址前缀为“192.168.1.”的客户端都可以连接。
如果Host=%,表示所有IP都有连接权限。
注意:在生产环境下不能为了省事将host设置为%,这样做会存在安全问题,具体的设置可以根据生产环境的IP进行设置;
问题二:如果出现下面的问题,是服务器上没有开放mysql的端口号,去服务器的安全组或者防火墙中添加mysql的端口号即可
改好之后,重启一下mysql,即可使用Navicat连接
侯哥语录:我曾经是一个职业教育者,现在是一个自由开发者。我希望我的分享可以和更多人一起进步。分享一段我喜欢的话给大家:"我所理解的自由不是想干什么就干什么,而是想不干什么就不干什么。当你还没有能力说不得时候,就努力让自己变得强大,拥有说不得权利。"