Linux下安装mysql

  1. 到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 ./data

    2 创建用户及用户组

    # 用户组
    groupadd mysql
    # 用户 (用户名/密码)
    useradd -g mysql mysql

    3、授权

    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

 
 二:开启mysql binlog 日志记录
 

binlog日志,即binary log,是二进制日志文件。它有两个作用,一是增量备份,即只备份新增的内容;二是用于主从复制等,即主节点维护了一个binlog日志文件,从节点从binlog中同步数据。我们可以通过binlog日志恢复数据。下面就介绍一下开启MySQL binlog日志的过程:

1、登录MySQL,查看binlog日志的状态
 登录MySQL后,输入show variables like '%log_bin%';查看到binlog日志为OFF关闭状态;

2、开启MySQL binlog日志

使用vi编辑器修改MySQL的my.cnf配置文件
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教程的更多相关文章

  1. linux下 安装mysql教程

    安装环境:系统是 centos6.5 1.下载 下载地址:http://dev.mysql.com/downloads/mysql/5.6.html#downloads 下载版本:我这里选择的5.6. ...

  2. 【云服务器部署】---Linux下安装MySQL

    [云服务器部署]---Linux下安装MySQL 有关如何阿里云ECS建网站,推荐一片文章,我是是通过这篇文章安装tomcat和jdk的 网址:阿里云ECS建网站(建站)超详细全套完整图文教程! 注意 ...

  3. Linux 下安装mysql 5.7

    Linux 下安装mysql 5.7 本人首次安装时按照菜鸟教程的步骤一步一步来的,结果意外的是 装成5.6了,而且各种无厘头的问题,例如无法启动... 本文参照 大佬:‘这个名字想了很久~’ 的&l ...

  4. 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 ...

  5. Linux下安装mysql(2) 及常见问题解决(CentOS)

    上一篇讲了基本的安装,这篇姑且算作进阶吧 链接Linux下安装mysql(1) 1.准备好mysql的rpm安装包 2.解压并进入usr/local/mysql 3.先执行useradd mysql( ...

  6. Linux下安装mysql(1)(CentOS)

    标题是(1)也就是说这次是基础安装,这种方式安装,没有组的创建,权限管理,配置文件更改等,仅仅是最基本的安装,适合第一次在linux上安装mysql的新手 1.准备好安装包(Linux-Generic ...

  7. Linux下安装 MySQL

    Ubuntu环境 使用二进制安装包安装,相对简单绿色 1.到官网下载二进制压缩包http://dev.mysql.com/downloads/mysql/ 2.选择需要的版本 目前最新为5.7.之后选 ...

  8. linux下安装mysql(rpm文件安装)

    数据库包下载: https://www.mysql.com/downloads/ 在GPL开原协议的社区开源版里边下载 我们用mysql community server里边的 其中workbench ...

  9. Linux 下安装mysql 8.0.11(CentOS 7.4 系统)

    CentOS 7 自带MariaDB (前mysql开发工程师开发的,因此与吗,mysql 有很多相似之处) 1.检查卸载自带的MariaDB rpm -qa|grep mariadb //查询出来已 ...

随机推荐

  1. 剑指offer--day09

    1.1 题目:栈的压入.弹出序列:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列1,2,3,4,5是某栈的压入顺序,序列 ...

  2. CGI 环境变量

    CGI 环境变量 环境变量 意义 SERVER_NAME CGI脚本运行时的主机名和IP地址. SERVER_SOFTWARE 你的服务器的类型如: CERN/3.0 或 NCSA/1.3. GATE ...

  3. Jmeter使用SSL(HTTPS协议)

    Jmeter是apache一款开源.小巧的性能测试工具,平时测试web http协议经常使用,其实jmeter同样支持ssl.方法如下: 需要装有目标网站证书的密钥库,即testclient.keys ...

  4. html/css中BFC的开启、关闭、作用

    什么是BFC BFC是什么并不重要.重要的是开启它干嘛?以及如何开启它 根据W3C的标准,在页面中元素都一个隐含的属性叫做Block Formatting Context(块级 格式化 环境)简称BF ...

  5. CentOS7 修复boot目录

    这里为了达到实验目的,首先删除boot目录下所有内容 重启后发现系统进不去了,这正是我们想要的 进入系统救援模式,以重新引导系统 进入救援模式后,输入以下命令进行修复boot目录 重启后,能正常引导系 ...

  6. 关于java的数组

    一定要写成 int[] arr = new int[30] 这样每个元素默认为0; 介样子的 如果写成 int[] arr = {1,2,3,4}; 那么他的长度就是4

  7. SpringBoot官方文档学习(二)使用Spring Boot构建系统

    强烈建议您选择一个支持依赖关系管理并且可以使用发布到“ Maven Central”仓库的构建系统.我们建议您选择Maven或Gradle.其他构建系统(例如,Ant)也可以和Spring Boot一 ...

  8. kotlin学习(1)基础

    所有笔记整理自电子工业出版社的<Kotlin实战>一书 变量声明: 类型放在变量名后面: val name:String="aaaa" ,String可以省略,因为可以 ...

  9. JS—图片压缩上传(单张)

    *vue+webpack环境,这里的that指到vue实例 <input type="file" name="file" accept="ima ...

  10. 搜索(BFS)---完美平方数

    完美平方数 279. Perfect Squares (Medium) For example, given n = 12, return 3 because 12 = 4 + 4 + 4; give ...