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. 使用JavaScript获得星期几和每月多少天

    <script type="text/javascript"> var date = "07/17/2014"; //此处也可以写成 17/07/2 ...

  2. jps

    jps(Java Virtual Machine Process Status Tool)是JDK 1.5提供的一个显示当前所有java进程pid的命令,简单实用,非常适合在linux/unix平台上 ...

  3. Word Pattern

    ​package cn.edu.xidian.sselab.hashtable; import java.util.HashMap;import java.util.Map; /** *  * @au ...

  4. (转)迎接 Entity Framework 7

    对实体框架的下一版本的开发正在顺利进行中.我在 2014 年度北美 TechEd 上第一次了解 EF 团队的工作内容,当时项目经理 Rowan Miller 讨论了 Entity Framework ...

  5. python进阶之生成器

    迭代器 什么叫迭代 可以被for循环的就说明他们是可迭代的,比如:字符串,列表,字典,元祖,们都可以for循环获取里面的数据 下面我们看一个代码: number = 12345 for i in nu ...

  6. Windows 远程桌面剪贴板失效的处理办法

    解决方法: 1.在任务管理器里选择rdpclip.exe进程,结束进程: 2.任务管理器左上角,文件-运行新任务,输入rdpclip.exe,确定运行即可.

  7. Android开源框架Afinal第一篇——揭开圣女的面纱

    Android开源框架Afinal第一篇——揭开圣女的面纱 分类: Android开源框架哪点事2013-09-02 14:25 260人阅读 评论(0) 收藏 举报 Afinal 这是Afinal在 ...

  8. halcon 手眼标定的坐标转换原理讲解

    原文链接:https://blog.csdn.net/opencv_learner/article/details/82113323 一直以来,对于手眼标定所涉及到的坐标系及坐标系之间的转换关系都没能 ...

  9. MySQL报错】ERROR 1558 (HY000): Column count of mysql.user is wrong. Expected 43, found 39.

    之前在centos6.4系统安装的是自带的mysql 5.1版本,后来升级到了5.6版本,执行以下命令报错 在网上查找原因说说因为升级不当导致,执行以下命令即可正常执行命令 mysql_upgrade ...

  10. JS实现逼真的雪花飘落特效

    逼真的雪花飘落特效 效果图: 图片素材 : --> ParticleSmoke.png 代码如下,复制即可使用: <!doctype html> <html> <h ...