Linux下安装mysql教程
Linux下安装mysql
到mysql官网下载mysql编译好的二进制安装包,在下载页面Select Platform:选项选择linux-generic,然后把页面拉到底部,64位系统下载Linux - Generic (glibc 2.5) (x86, 64-bit),32位系统下载Linux - Generic (glibc 2.5) (x86, 32-bit)
安装前准备:
1.先检查Linux中是否存在mysql rpm -qa|grep mysql
2:如果存在,请先执行卸载命令:rpm -e --nodeps mysql-libs --nodeps代表:可能其他地方有依赖mysql,这里强制卸载
3:检查 /tmp文件夹权限,由于mysql安装过程中,会通过mysql用户在/tmp目录下新建tmp_db文件,所以请给/tmp较大的权限
chmod -R 777 /tmp
4:检查各个mysql文件夹是否删除干净
find / -name mysql
结果如下:
/var/lib/mysql
/usr/local/mysql
/usr/lib/mysql
/usr/include/mysql
命令删除:
rm -fr /usr/lib/mysql
rm -fr /usr/include/mysql
注意:卸载后/var/lib/mysql中的数据及/etc/my.cnf不会删除,如果确定没用后就手工删除
rm -f /etc/my.cnf
rm -fr /var/lib/mysql
删除mysql用户及用户组
userdel mysql
groupdel mysql
MySQL正式安装和相关设置(这里以mysql8.0.11为例)
1:上传压缩包到linux
解压压缩包:
tar -zxvf mysql-8.0.11-linux-glibc2.12-i686.tar.gz
# 移动解压后的文件夹至/usr/local
mv /usr/local/src/mysql-8.0.11-linux-glibc2.12-x86_64 /usr/local/
# 重命名
mv ./mysql-8.0.11-linux-glibc2.12-x86_64 mysql-8.0
# 创建文件夹data,存储文件;
cd /usr/local/mysql-8.0/
mkdir ./data2 创建用户及用户组
# 用户组
groupadd mysql
# 用户 (用户名/密码)
useradd -g mysql mysql3、授权
chown -R mysql.mysql /usr/local/mysql-8.0/ # 亲测
或
chown -R mysql .
chgrp -R mysql .4 初始化数据库
# 查看当前所在目录
pwd # 若显示/usr/local/mysql-8.0,请继续执行,否则请先进入此目录/usr/local/mysql-8.0
# 初始化 注意查看是否存在相关目录,若不存在,请新建
./bin/mysqld --user=mysql --basedir=/usr/local/mysql-8.0/ --datadir=/usr/local/mysql-8.0/data/ --initialize ; # 亲测
或
./bin/mysql --user=mysql --basedir=/usr/local/mysql-8.0/ --datadir=/usr/local/mysql-8.0/data/ --initialize ;生成的临时密码:
5 Mysql配置
vi /etc/my.cnf
建立MySQL服务
# 添加Mysql到系统服务
cd /usr/local/mysql-8.0
cp -a ./support-files/mysql.server /etc/init.d/mysql # 若mysqld,以下mysql相应的修改mysqld,如下图所示
chmod +x /etc/init.d/mysql
chkconfig --add mysql
# 检查服务是否生效
chkconfig --list mysql启动Mysql服务
# 启动
service mysql start;
# 查看启动状态
service mysql status;系统默认会查找/usr/bin下的命令,如果这个命令不在这个目录下,会找不到mysql的相关命令,我们需要做的就是映射一个链接到/usr/bin目录下,相当于建立一个链接文件
首先得知道mysql命令或mysqladmin命令的完整路径,比如mysql的路径是:/usr/local/mysql-8.0/bin/mysql,我们则可以这样执行命令: # ln -s /usr/local/mysql-8.0/bin/mysql /usr/bin
修改root密码
# 进入mysql
mysql -uroot -p
输入初始密码# 如果想要所有主机都可访问,把localhost改成%
alter user 'root'@'localhost' identified with mysql_native_password by '123456';
# 刷新
flush privileges;开放3306端口:
让外网能够访问mysql
a.配置防火墙: firewall-cmd --zone=public --add-port=3306/tcp --permanent(开放3306端口)
systemctl restart firewalld(重启防火墙以使配置即时生效)
查看系统所有开放的端口:firewall-cmd --zone=public --list-ports
常用的mysql操作命令:
1:新建mysql用户:
登录mysql
mysql -u root -p
输入密码
CREATE USER 'test'@'localhost' IDENTIFIED WITH mysql_native_password BY 'qwe123';
注意:此处的"localhost",是指该用户只能在本地登录,不能在另外一台机器上远程登录。如果想远程登录的话,将"localhost"改为"%",表示在任何一台电脑上都可以登录。也可以指定某台机器可以远程登录。如果需要限定IP访问,可以修改localhost-->指定IP地址。
如果还需要设置到另一个ip, 那么就需要重复上面的步骤:
CREATE USER 'test'@'129.xxx.xxx.xx' IDENTIFIED WITH mysql_native_password BY 'qwe123';
2. 为用户授权
这里直接赋所有的权限
GRANT ALL PRIVILEGES ON *.* TO 'test'@'139.xxx.xxx.xx'
如果需要指定权限,就将ALL改为SELECT DELETE UPDATE INSERT等四种权限任选即可grant insert,select,update on test01.* to 'mayiic_dev'@'%';
flush privileges; //刷新系统权限表
3、删除指定的用户:
drop user 'test'@'106.xxx.xx.xx';
4、 查询用户和权限
use mysql;
select Host,User from user where user='root';
show grants for root;1、 显示数据库列表。
show databases;
2、 显示库中的数据表:
# 指定数据库
use mysql;
#显示指定库中的表
show tables;
3、 显示数据表的结构:
describe 表名;
4、 建库与删库:
create database 库名;
drop database 库名;MySQL8.0 忘记 root 密码下如何修改密码?1、vim /etc/my.cnf,添加 skip-grant-table(跳过权限验证)
2、重启 mysql 服务
systemctl restart mysqld //重启服务
3、刷新权限表:flush privileges;
4、mysql 登录:mysql -uroot -p(无需密码)
5、密码重置(Mysql8.0 + 有变化)
use mysql;
update user set authentication_string='' where user='root'; alter user 'root'@'localhost' identified with mysql_native_password by '123456';6、vim /etc/my.cnf,删除 skip-grant-table
7、再次重启 mysql 服务,使用新密码登录 mysql
binlog日志,即binary log,是二进制日志文件。它有两个作用,一是增量备份,即只备份新增的内容;二是用于主从复制等,即主节点维护了一个binlog日志文件,从节点从binlog中同步数据。我们可以通过binlog日志恢复数据。下面就介绍一下开启MySQL binlog日志的过程:
1、登录MySQL,查看binlog日志的状态
登录MySQL后,输入show variables like '%log_bin%';查看到binlog日志为OFF关闭状态;
2、开启MySQL binlog日志
vi /etc/my.cnf
server_id=2
#log日志文件存放位置
log_bin = /var/bin/mysql/mysql-bin binlog_format = ROW expire_logs_days = 30
注意:每次服务器(数据库)重启,服务器会调用flush logs;,新创建一个binlog日志
cd /var/bin/mysql/mysql-bin
数据恢复语法:
恢复语法
恢复命令的语法格式:
mysqlbinlog mysql-bin.0000xx | mysql -u用户名 -p密码 数据库名
常用参数选项解释:
--start-position=780 起始pos点
--stop-position=904 结束pos点
--start-datetime="2019-3-27 12:04:08" 起始时间点
--stop-datetime="2019-3-27 12:49:46" 结束时间点
--database=my_test 指定只恢复my_test数据库(一台主机上往往有多个数据库,只限本地log日志) !!!!Ubuntu我没用熟悉吧 牢记 在mysqlbinlog和mysq前面都要加上sudo!!!!
For example 指定pos结束点恢复(部分恢复)
恢复到780节点
sudo mysqlbinlog mysql-bin.000002 --stop-position 780 | sudo mysql -uroot -p my_test
binlog 日志文件转sql
进入mysql 的安装目录bin 目录执行----》mysql-bin.000011的文件路径
mysqlbinlog --base64-output=decode-rows -v mysql-bin.000011 -d db1 > db1.sql //将row格式的binlog日志文件base64解析后转入文件,-v代表换行展示
mysqlbinlog --start-date="2017-08-12 15:00:19" --stop-date="2017-08-12 15:30:19" mysql-bin.000011 -d db1 > db1.sql //选择时间范围导出
执行sql语句时报错:
Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nona
解决:
SELECT @@sql_mode;
查询出来的值为:
ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
修改mysql的配置文件:
vim /etc/my.cnf
加入上面查询出来的内容,去掉ONLY_FULL_GROUP_BY
eg:
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
然后重启mysql解决:
service mysql restart
Linux下安装mysql教程的更多相关文章
- linux下 安装mysql教程
安装环境:系统是 centos6.5 1.下载 下载地址:http://dev.mysql.com/downloads/mysql/5.6.html#downloads 下载版本:我这里选择的5.6. ...
- 【云服务器部署】---Linux下安装MySQL
[云服务器部署]---Linux下安装MySQL 有关如何阿里云ECS建网站,推荐一片文章,我是是通过这篇文章安装tomcat和jdk的 网址:阿里云ECS建网站(建站)超详细全套完整图文教程! 注意 ...
- Linux 下安装mysql 5.7
Linux 下安装mysql 5.7 本人首次安装时按照菜鸟教程的步骤一步一步来的,结果意外的是 装成5.6了,而且各种无厘头的问题,例如无法启动... 本文参照 大佬:‘这个名字想了很久~’ 的&l ...
- linux下安装mysql问题总结(一)mysqld_safe mysqld from pid file /usr/local/mysql/data/mysql.pid ended
linux下安装mysql数据库 linux版本:CentOS release 6.8 (Final) mysql版本:mysql-5.7.16-linux-glibc2.5-x86_64.tar.g ...
- Linux下安装mysql(2) 及常见问题解决(CentOS)
上一篇讲了基本的安装,这篇姑且算作进阶吧 链接Linux下安装mysql(1) 1.准备好mysql的rpm安装包 2.解压并进入usr/local/mysql 3.先执行useradd mysql( ...
- Linux下安装mysql(1)(CentOS)
标题是(1)也就是说这次是基础安装,这种方式安装,没有组的创建,权限管理,配置文件更改等,仅仅是最基本的安装,适合第一次在linux上安装mysql的新手 1.准备好安装包(Linux-Generic ...
- Linux下安装 MySQL
Ubuntu环境 使用二进制安装包安装,相对简单绿色 1.到官网下载二进制压缩包http://dev.mysql.com/downloads/mysql/ 2.选择需要的版本 目前最新为5.7.之后选 ...
- linux下安装mysql(rpm文件安装)
数据库包下载: https://www.mysql.com/downloads/ 在GPL开原协议的社区开源版里边下载 我们用mysql community server里边的 其中workbench ...
- Linux 下安装mysql 8.0.11(CentOS 7.4 系统)
CentOS 7 自带MariaDB (前mysql开发工程师开发的,因此与吗,mysql 有很多相似之处) 1.检查卸载自带的MariaDB rpm -qa|grep mariadb //查询出来已 ...
随机推荐
- IDEA&GIT应用
IDEA&GIT应用 一.IDEA整合GIT GIT教程:http://www.yiibai.com/git/git_pull.html File->Settings.. 1.从GIT上 ...
- C/C++ 引入头文件时 #include<***.h> 与 #include"***.h" 区别
两种情况区分: 1.#include <> 编译器只会去系统文件目录中查找,找不到就报错. 2.#include " " 编译器会先在用户目录中查找,再到编译器设定的 ...
- 移动端1像素解决方法,根据媒体查询transform缩放
.borderOnePx{ position: relative; } .borderOnePx::after { content: ''; height:1px; background:#000; ...
- java反射, 不看你可别后悔
开发中, 难免遇到些私有的属性和方法, 就好比下面的实体一样, 我们该怎么获得她, 并玩弄于手掌呢? 我们先来个实体瞧瞧, 给你个对象你也new不了, hahaha- 单身wang public cl ...
- spark复习笔记(4):RDD变换
一.RDD变换 1.返回执行新的rdd的指针,在rdd之间创建依赖关系.每个rdd都有一个计算函数和指向父rdd的指针 Spark是惰性的,因此除非调用某个转换或动作,否则不会执行任何操作,否则将触发 ...
- 移动端300ms延迟原理,穿透、遮罩层滑动导致下面滑动总结
遮罩层滑动导致下面滑动 1,阻止弹层滑动,使用默认事件,使用这种方式弹层不能滑动 document.getElementById("model").addEventListener ...
- 手写符合Promise/A+规范的Promise
const PENDING = "pending"; const RESOLVED = "resolved"; const REJECTED = "r ...
- Docker实战部署应用——MySQL5.7
MySQL 部署 拉取MySQL镜像 拉取命令: docker pull mysql:5.7 查看镜像 docker images 创建 MySQL 容器 docker run -id --name= ...
- 基于socket 实现单线程并发
基于socket 实现单线程并发: 基于协程实现内IO的快速切换,我们必须提前导入from gevent import monkey;monkey pacth_all() 以为 gevent spaw ...
- DbArithmeticExpression arguments must have a numeric common type.
引用 system.data.linq