linux运维及其mysql8安装相关
一.linux系统各个版本解析
- Ubuntu(动物名称对应发布日期)
1).precise 12.04
2).trusty 14.04
3).xenial 16.04
4).bionic 18.04
二.检查linux环境
1.查看系统版本信息
cat /etc/issue
cat /etc/redhat-release(centos使用)
2.查看当前系统的运行位数
getconf LONG_BIT
三.安装mysql8
- 卸载旧版本
rpm -qa | grep -i mysql(执行完毕有返回数据,请执行下面语句删除)
yum -y remove mysql-libs*(有网络的情况下可以使用yum命令)
https://jingyan.baidu.com/article/4dc4084867f91bc8d946f1eb.html(无网络可以查看这里的教程)
卸载软件:rpm -e --nodeps 软件名称 (无网络)
再输入最后一条命令后无任何返回时,即代表已经卸载干净,具体请看如下:
- 确定安装的版本
具体rpm源地址请查看如下网址: https://repo.mysql.com/
选择对应系统版本的数据,获取下载地址,复制备用
- 更新yum源
sudo yum localinstall https://repo.mysql.com//mysql80-community-release-el7-2.noarch.rpm
红色部分替换为你需要安装的地址即可,看到完成即代表yum源更新完毕
- 使用yum安装mysql
sudo yum install mysql-community-server
同样显示完成即代表安装完成(中英文版本都一样),此过程需要较长时间,请耐心等待.过程中出现需要继续,请输入’y’回车继续.
- 启动mysql
sudo service mysqld start
- 查看mysql状态
sudo service mysqld status
- 查看mysql初始密码,并使用初始化密码进行登陆,
查看初始化密码:sudo grep 'temporary password' /var/log/mysqld.log
登陆:mysql -uroot –p 密码输入初始密码
注意:
当使用初始化密码进行数据库操作时,必须修改密码
- 修改初始密码(注意mysql版本,操作不一样)
1>.修改mysql7以上初始化密码(建议密码参照’Root!1234’设置),设置完毕后使用新密码登陆在做其他设置.
ALTER USER 'root'@'localhost' IDENTIFIED BY '密码';
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'Mysql2020!'
2>.修改mysql5.6.44的初始密码
use mysql;
update mysql.user set password=password("123456") where user="root";
net stop mysql;(修改完密码一定重启并使用新的进行登陆)
- 查看mysql的端口
show global variables like 'port';
- 查看编码集
show variables like 'character%';
- 新建库(仅在mysql8中如下设置)
create database 数据库名称;
- 开启远程访问数据库
在mysql命令下执行如下命令:
use mysql;
update user set host = '%' where user ='root';
select host, user from user;
flush privileges;
其中%代表所有,user代表用户
13. mysql安装完毕,官方建议都运行如下初始化脚本(具体参看文档):
mysql_secure_installation
四.mysql无法远程或者无法联机相关问题
1.首先在linux系统中执行如下命令:
查看所有运行的进程:netstat –ntlp
如果出现上面显示的问题,项目肯定无法正常链接数据库.
2.解决办法如下
1).编辑/etc/my.cnf
在[mysqld]节中增加下面一行:
bind-address=0.0.0.0 #全部地址或者指定的ip地址
2).重启mysql服务即可解决
service mysqld restart
3).乱码解决
3.再次查看正在运行的进程,mysql的tcp6和tcp协议都已经生效
五.关于防火墙设置(项目启动正常,无法访问)
1.首先查看linux版本的防火墙是否开启
注意系统版本,本例以centos7为题介绍
firewall-cmd --state
systemctl status firewalld
2.直接关闭防火墙
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
systemctl start firewalld.service #开启防火墙
firewall-cmd --zone=public --list-ports #查看已开放的端口
3.添加tomcat8001端口到白名单
firewall-cmd --permanent --zone=public --add-port=8001/tcp
命令含义
--zone #作用域
--add-port=8001/tcp #添加端口,格式为:端口/通讯协议
--permanent #永久生效,没有此参数重启后失效
4. 重启防火墙:添加成功之后需要重启防火墙
firewall-cmd –reload
5.其他相关
其他常用命令:
firewall-cmd --state #查看防火墙状态,是否是running
firewall-cmd --reload #重新载入配置,比如添加规则之后,需要执行此命令
firewall-cmd --get-zones #列出支持的zone
firewall-cmd --get-services #列出支持的服务,在列表中的服务是放行的
firewall-cmd --query-service ftp #查看ftp服务是否支持,返回yes或者no
firewall-cmd --add-service=ftp #临时开放ftp服务
firewall-cmd --add-service=ftp --permanent #永久开放ftp服务
firewall-cmd --remove-service=ftp --permanent #永久移除ftp服务
firewall-cmd --add-port=80/tcp –permanent #永久添加80端口
firewall-cmd --remove-port=80/tcp --permanent #永久移除80端口
firewall-cmd --zone=public --list-ports #查看已开放的端口
六.关于Mysql8远程连接报错
解决:
- use mysql;
- ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'Root!1234';
原因:
为了提供更安全的密码加密,Mysql8的首选默认认证插件是caching_sha2_password
七.Mysql启动失败解决方案:
rm -fr /var/lib/mysql/*
rm /var/lock/subsys/mysqld
killall mysqld
service mysqld start
六.其他常用数据库命令
show databases; //显示数据库
create database name; //创建数据库
use databasename; //选择数据库
drop database name //直接删除数据库,不提醒
show tables; //显示表
describe tablename; //显示具体的表结构
ALTER TABLE WbSingleReport MODIFY wbtitle longtext;//mysql下修改表的字段类型(由varchar修改为lob,也就是longtext)
select 中加上distinct去除重复字段
mysqladmin drop databasename //删除数据库前,有提示。
//显示当前mysql版本和当前日期
select version(),current_date;
七. Linux中rz和sz命令用法
rz,sz是Linux/Unix同Windows进行ZModem文件传输的命令行工具。
优点就是不用再开一个sftp工具登录上去上传下载文件。
sz:将选定的文件发送(send)到本地机器
rz:运行该命令会弹出一个文件选择窗口,从本地选择文件上传到Linux服务器
安装命令:
yum install lrzsz
从服务端发送文件到客户端:
sz filename
从客户端上传文件到服务端:
rz
在弹出的框中选择文件,上传文件的用户和组是当前登录的用户
八.Oracle数据库相关
1.查看oracle客户端版本:
sqlplus -v
2.切换oracle命令
sqlplus /nolog
3.登录oracle
conn account/password
4.查询当前账户下的所有数据表
select table_name from user_tables;
5.windows下数据导出(ruc/ruc@databasename)
exp ruc/ruc@ruc file=d:/aaaa.dmp full=y
6. 将D:daochu.dmp 中的数据导入 TEST数据库中。imp system/manager@TEST file=d:daochu.dmp