一、下载解压文件
MySQL下载地址:MySQL :: Download MySQL Community Server
可选择对应版本的MySQL这里使用的Linux系统是是CentOS8
选择的数据库是8.0的通用版本Linux-Genric
查看Linux是32位还是64位可使用:getconf LONG_BIT或:uname -r查看,若显示x86_64 则代表是64位
将下载的MySQL压缩包通过xftp工具传输到Linuxd的目录下
查看当前目录是否存在已传输的MySQL压缩包
解压文件
注意:由于压缩包是.xz格式,直接用tar解压会失败
解决办法
先用xz进行解压xz为tar格式
xz -d mysql-8.0.26-linux-glibc2.12-x86_64.tar.xz
在使用tar进行最后解压
tar xvf mysql-8.0.26-linux-glibc2.12-x86_64.tar
解压完毕再次查看已经变为蓝色说明解压成功
拓展:
xz语法参数
xz [-dtlkc#] 文件名
参数:
-z, –compress 强制压缩
-d, –decompress 强制解压
-t, –test 测试压缩文件完整性
-l, –list 列出有关文件的信息
-k, –keep 保留(不删除)输入文件
-f, –force 强制覆盖输出文件和(取消)压缩链接
-c, –stdout 写入标准输出,不删除输入文件
-0 .. -9 压缩预设;0-2快速压缩,3-5良好
压缩,6-9极好的压缩;默认值为6
-e, –extreme 编码时使用更多的CPU时间来增加压缩
不增加解码器内存使用率的比率
-q, –quiet 取消警告;指定两次也可以取消错误
-v, –verbose 详细;为更详细的内容指定两次
-h, –help 显示此简短帮助
-H, –long-help 显示长帮助(同时列出高级选项)
-V, –version 显示版本号
tar语法格式
必选其中之一参数(而且 一次只能使用其中一个,不能同时使用多个):
(这五个参数是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用,但一次只能用其中一个)
-c:建立一个压缩文件的参数指令(create 的意思);
-x:解开一个压缩文件的参数指令!
-t:查看 tarfile 里面的文件!
-r:向压缩归档文件末尾追加文件
-u:更新原压缩包中的文件
特别注意,在参数的下达中, c/x/t/r/u 仅能存在一个!不可同时存在!因为不可能同时压缩与解压缩。
可选参数
下面的参数是根据需要在压缩或解压档案时可选的。
-z:有gzip属性,即需要用 gzip 压缩
-j:有bz2属性,即需要用 bzip2 压缩
-Z:有compress属性的
-v :压缩的过程中显示文件(显示所有过程)!这个常用,但不建议用在背景执行过程!
-O:将文件解开到标准输出
-f :使用档名,请留意,在 f 之后要立即接档名!不要再加参数!例如使用『 tar -zcvfP tfile sfile』就是错误的写法,要写成『 tar -zcvPf tfile sfile』才对喔!
-p :使用原文件的原来属性(属性不会依据使用者而变)
-P :可以使用绝对路径来压缩!
-N :比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的文件中!
--exclude FILE:在压缩的过程中,不要将 FILE 打包!
-f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。
示例
# tar -cf all.tar *.jpg // 这条命令是将所有.jpg的文件打成一个名为all.tar的包。-c是表示产生新的包,-f指定包的文件名。
# tar -rf all.tar *.gif // 这条命令是将所有.gif的文件增加到all.tar的包里面去。-r是表示增加文件的意思。
# tar -uf all.tar logo.gif // 这条命令是更新原来tar包all.tar中logo.gif文件,-u是表示更新文件的意思。
# tar -tf all.tar // 这条命令是列出all.tar包中所有文件,-t是列出文件的意思
# tar -xf all.tar // 这条命令是解出all.tar包中所有文件,-x是解开的意思
接下来将解压后的文件移动到 /usr/local/mysql 并重命名为mysql
mv /root/mysql-8.0.26-linux-glibc2.12-x86_64 /usr/local/mysql
在mysql根目录下创建data文件夹
mkdir mysql/data
二、创建用户和组
创建用户组和用户并指定给mysql组
groupadd mysql
useradd -g mysql mysql
改变mysql目录权限
chown -R mysql.mysql /usr/local/mysql/
三、初始化MySQL
创建数据库安装文件
mkdir mysql_install_db
chmod 777 ./mysql_install_db
初始化
/usr/local/mysql/bin/mysqld --initialize --user=mysql
记下初始密码:1Uxf+xK0V1co
四、配置MySQL
复制文件到 /etc/init.d/mysqld
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
查看是已复制 l /etc/init.d/mysqld
修改my.cnf文件
vi /etc/init.d/mysqld
填写一下内容:
[mysqld]
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
socket = /usr/local/mysql/mysql.sock
character-set-server=utf8
port = 3306
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[client]
socket = /usr/local/mysql/mysql.sock
default-character-set=utf8
wq保存退出
五、建立MySQL服务
建立MySQL服务
将support-files/mysql.server复制到/etc/init.d/mysql
cp support-files/mysql.server /etc/init.d/mysql
添加权限
chmod +x /etc/init.d/mysql
添加到系统服务
chkconfig --add mysql
检查是否生效
chkconfig --list mysql
mysql service已经可启动mysql服务
service mysql start
六、配置全局变量
配置全局变量
编辑 / etc/profile 文件
在最下方添加以下环境变量:
export PATH=$PATH:/usr/local/mysql/bin:/usr/local/mysql/lib
export PATH
设置环境变量立即生效
source /etc/profile
启动服务后进行登录
service mysql start
mysql -u root -p
报错
解决问题
进入数据库目录
cd /usr/local/mysql/bin/ #先进入该命令的对应目录 ldd mysql #查看依赖库文件
提示找不到libtinfo.so.5
安装缺失依赖
dnf install ncurses-compat-libs
再次登录
mysql -u root -p
输入初始化的密码:1Uxf+xK0V1co
登录成功
七、测试数据库
测试数据库
查看所有数据库
show databases;
报错提示第一次使用需要修改密码
修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Root3306‘;
成改成功
再次查看所有数据库
show databases;
测试完成退出数据库
exit
至此Linux安装MySQL8.0完成!
相关Linux命令:
启动mysql服务
service mysqld start
登录本机mysql数据库
mysql -uroot -p
重启mysql服务
service mysqld restart
停止mysql服务
service mysqld stop
登录远程mysql数据库
mysql -h主机地址 -u用户名 -p用户密码
查看mysql运行状态
service mysqld status
查看mysql的运行使用的进程
ps -e |grep mysql
扩展:远程连接Linux数据库
先创建用户
Linux中登录MySQL并创建一个用户设置用户名密码以及允许远程访问的IP地址
create user 'windows' @'192.168.128.110' identified by 'Root3306';
关闭防火墙
查看防火强状态
serives firewall-cmd --state
如果开启需要停止防火墙
service firewalld stop
CentOS 8防火墙相关命令
查看防火强状态
firewall-cmd --state
停止防火墙
service firewalld stop
启动防火墙
service firewalld start
重启防火墙
service firewalld restart
连接数据库
方式一:
Windows的cmd中输入
mysql -h 192.168.128.24 -u windows -p
回车在输入密码
方式二
使用其他MySQL数据库管理工具进行连接
测试
查看所有数据库
>show databases;
只看到部分数据库是因为没有足够的权限,需要授予权限
用户授权
授予部分权限
给名为windows的用户授予(select, create, insert, update, delete )权限,(*.*)代表所有库所有表
grant select, create, insert, update, delete on *.* to windows@'192.168.128.110';
或 授予所有权限
给名为windows的用户授予权限,(all)代表所有权限(*.*)代表所有库所有表
>grant all on *.* to windows@'192.168.128.110';
收回权限命令
revoke all privileges,grant option from windows@'192.168.128.110';
再次查看数据库
>show databases;
cmd中查看