centos7.X安装mysql8.0.21tar包
因为公司内网服务器没办法连接外网,不能使用yum源安装mysql,所以只能自己去官网下载tar.xz包自行安装;安装过程中存在很多坑,分享给大家做参考
官网下载mysql8.0.21的压缩包。
下载地址:
https://dev.mysql.com/downloads/mysql/
选择Linux-generic,按照自己的需求选择对应的版本,下载压缩包;通过ssh工具上传到服务器上。
- 建议工具包都上传到自己指定好的目录,规范操作,比如 /local/tools下
-
检查之前是否有安装mysql
- 这里有个坑一定要注意,通常我们会使用
这条命令来查找本机上是否安装mysql,但是这条命令只对rpm安装方式有效,所以以下分两种情况来分析服务器是否安装过mysql$ rpm -qa | grep -i mysql
- 这里有个坑一定要注意,通常我们会使用
-
rpm方式安装的MySQL卸载
首先检查是否安装MySQL$ rpm -qa |grep -i mysql
以上是安装的所有MySQL的服务,需要全部卸载$ yum remove mysql-community-common-5.7.20-1.el7.x86_64 $ yum remove mysql-community-client-5.7.20-1.el7.x86_64 $ yum remove mysql57-community-release-el7-11.noarch $ yum remove mysql-community-libs-5.7.20-1.el7.x86_64 $ yum removemysql-community-server-5.7.20-1.el7.x86_64
再次使用命令查找是否卸载完全
$ rpm -qa |grep -i mysql
查找是否还有mysql文件残留
$ whereis mysql
得到结果
删除以上文件及文件夹$ rm /usr/bin/mysql* $ rm -rf /usr/local/mysql
再查找是否有文件剩余,如果有,删除即可
$ find / -name mysql
删除MySQL的配置文件
$ rm -rf /etc/my.cnf
删除以前MySQL产生的日志
$ rm /var/log/mysql*
-
卸载tar包安装的MySQL
rpm命令无法查找出MySQL,可以通过检查MySQL的状态命令查看是否安装MySQL$ service mysql status
如果正在运行需要停止运行
$ service mysql stop
如果有mysql服务,使用以上查找mysql文件命令删除MySQL相关文件即可
$ rpm -qa |grep -i mysql
查找是否还有mysql文件残留
$ whereis mysql
得到结果
删除以上文件及文件夹$ rm /usr/bin/mysql* $ rm -rf /usr/local/mysql
再查找是否有文件剩余,如果有,删除即可
$ find / -name mysql
删除MySQL的配置文件
$ rm -rf /etc/my.cnf
删除以前MySQL产生的日志
$ rm /var/log/mysql*
安装MySQL
-
解压文件
我们上传的是tar.xz包,所以使用以下命令进行解压,将MySQL解压到/usr/local中$ sudo tar -xvf mysql-8.0.21-linux-glibc2.12-x86_64.tar.xz -C /usr/local/
-
将文件夹更换名称
sudo mv /usr/local/mysql-8.0.21-linux-glibc2.12-x86_64/ /usr/local/mysql
-
检查mysql组和用户是否存在,如无创建(非必须,用系统当前用户也可)
$ cat /etc/group | grep mysql $ cat /etc/passwd | grep mysql
-
创建mysql用户组
$ groupadd mysql $ useradd -g mysql mysql
-
进入MySQL安装目录中创建data目录
$ sudo mkdir /usr/local/mysql/data
-
给文件夹赋予操作权限
$ sudo chmod -R 777 /usr/local/mysql $ sudo chmod -R 777 /usr/local/mysql/data/
-
给用户赋予操作权限
$ sudo chown -R kss:kss /usr/local/mysql/
这里的kss:kss分别是自己的用户名和用户组名,需要替换成自己的
-
创建MySQL配置文件
$ sudo vi /etc/my.cnf
配置文件内容如下
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
skip-name-resolve
#设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=/usr/local/mysql
# 设置mysql数据库的数据的存放目录
datadir=/usr/local/mysql/data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
lower_case_table_names=1
max_allowed_packet=16M
-
进入mysql启动目录下
$ cd /usr/local/mysql/bin
初始化MySQL数据库,这里记得加上一个忽略表名大小写的参数,否则会给后面带来很多麻烦,mysql8以上的版本只能在初始化之前设置这个参数,后期修改会导致数据库不能运行
$ ./mysqld --initialize --console --lower-case-table-names=1
此时会给root用户产生一个随机密码,需要记住这个密码,等会儿登录需要
-
修改config配置,修改SELINUX=disabled
$ sudo vi /etc/selinux/config
-
创建软连接(实现可直接命令行执行mysql)
$ sudo ln -s /usr/local/mysql/bin/mysql /usr/bin
-
mysql配置开机启动
拷贝启动文件到/etc/init.d/下并重命名为mysqld
$ sudo cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
增加执行权限
$ sudo chmod 777 /etc/init.d/mysqld
检查自启动项列表中没有mysqld
$ sudo chkconfig --list mysqld
如果没有就添加mysqld
$ sudo chkconfig --add mysqld
设置开机启动
$ sudo chkconfig mysqld on
-
启动mysql
service mysqld start
设置mysql参数
-
创建mysql用户
-
登录mysql
$ mysql -u root -p
-
修改root用户密码
-> set PASSWORD = '自己的密码'
此时mysql是无法通过远程访问连接的,需要修改设置,不建议使用root用户进行远程连接,因此我们最好创建属于自己的用户
-
创建新用户
-> create user 'mysql'@'%' IDENTIFIED BY '自己的密码';
-
开启远程访问权限
命令如下:
grant privileges on databasename.tablename to ‘username’@‘host’;
例(给mysql用户操作所有库和表的权限):-> grant ALL on *.* to 'mysql'@'%' with grant option;
-
刷新权限设置
-> flush privileges;
-
-
远程登录
-
远程登录工具连接
结果报错
此时需要修改密码加密规则 -
修改密码加密规则
-> alter user 'root'@'localhost' IDENTIFIED by 'password' password expire never;
-
更新用户的密码
-> alter user 'root'@'localhost' identified with mysql_native_password by 'password'; -> alter user 'mysql'@'%' IDENTIFIED with mysql_native_password by 'password';
-
刷新权限
-> flush privileges;
重新使用mysql界面化工具登录已经可以成功登录,centos7.x 安装mysql最新8.0.21版本已经全部完成,希望这个教程对你有用。
-