• mysql 5.6 rpm安装启动、配置参数、字符集修改等


    linux 7 安装mysql server 注意:此mysql版本是el6
    
    MySQL-server-5.6.35-1.el6.x86_64
    
    一、安装部署:
    
        1.yum:首先要配置yum源,yum安装会直接解决包依赖关系
        2.rpm:单个软件包的安装.xx.rpm
        3.源码安装:make编译方式,部署到linux,自定义变量,路径等
    
    (一)依赖包安装过程:
    
        1、先安装上传工具:
    
            yum install lrzsz
            安装之后使用rz命令上传文件
            
        2、安装mysql_server包:
    
            报错1;缺少 libnuma.so    
            yum list |grep -i numa
            yum install numactl.x86_64
    
            报错2:冲突file /usr/share/mysql/charsets/README from install of MySQL-server-5.6.35-1.el6.x86_64 
            conflicts with file from package mariadb-libs-1:5.5.60-1.el7_5.x86_64
              rpm -qa|grep -i mariadb
              yum remove mariadb-libs-5.5.60-1.el7_5.x86_64
    
            报错3:初始化时没有data:dumper导致报错
            FATAL ERROR: please install the following Perl modules 
            before executing /usr/bin/mysql_install_db:
            Data::Dumper
              yum list |grep -i dumper
              yum install perl-Data-Dumper.x86_64 -y
    
        3、删除之前的不完整安装,重新安装:
            rpm -e MySQL-server-5.6.35-1.el6.x86_64
            rm -rf /var/lib/mysql/
    
        4、rpm安装:
            rpm -ivh MySQL-server-5.6.35-1.el6.x86_64.rpm
    
        5、安装过程的注意点:
    
            1.缺什么补什么,如下包
              yum install numactl.x86_64 -y
    
            2.哪个冲突删哪个
              rpm -qa:查询已经安装的rpm包
              rpm -qa|grep -i mariadb
              yum remove mariadb-libs-5.5.60-1.el7_5.x86_64
              yum list |grep -i dumper
              yum install perl-Data-Dumper.x86_64 -y
              rpm -e MySQL-server-5.6.35-1.el6.x86_64
              rm -rf /var/lib/mysql/ (安装有脏文件需要重新安装时清理之前的安装文件)
    
        6、初始化密码存储位置:
            A random root password has been set. 
            You will find it in '/root/.mysql_secret'.
    
    
        7、安装客户端:
            rpm -ivh MySQL-client-5.6.35-1.el6.x86_64.rpm 
            安装后会有个mysql命令
    
        8、启动mysql服务:
    
            1)报错1:
                ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
                一般是服务没有启动
            2)服务启动:
            
                service mysql start
                Starting MySQL.Logging to '/var/lib/mysql/VM_0_6_centos.err'.
                SUCCESS!
                
                service mysql status
                ps -ef|grep mysql
    
        9.登录数据库:
    
            1)报错1,ERROR 1045 (28000): 
                Access denied for user 'root'@'localhost' (using password: NO)
                需要密码
                初始化密码保存在
                cat /root/.mysql_secret
    
            2)mysql -uroot -p初始化密码
               show databases;
    
    
            3)重新设置密码:
                ERROR 1820 (HY000): You must SET PASSWORD before executing this statement
                初始化时生成的是随机密码
                要求使用前必须自定义设置个密码
    
                set password=password('123456');
                help SET PASSWORD
    
    二、服务组件,服务目录
        1、mysql进程:
            
            ps -ef|grep mysql
            mysqld_safe :mysql的守护进程,默认安装都会有,也可以不启动
            作用:mysql进程异常挂掉,mysqld_safe会尝试重新拉起一个mysql进程
        
            datadir:数据存储目录
            
            --basedir=/usr   #mysql的安装目录,mysql启动命令,服务工具等
            --datadir=/var/lib/mysql  #mysql的数据存储目录,库表,日志等
            --plugin-dir=/usr/lib64/mysql/plugin #插件补丁的目录
            --user=mysql #启动用户
            --log-error=/var/lib/mysql/VM_0_6_centos.err  #错误日志文件
            --pid-file=/var/lib/mysql/VM_0_6_centos.pid #进程号存储文件
    
        2、查看监听端口:
            netstat -tanlp|grep mysql
    
    
    三、mysql卸载:
        1、卸载步骤:
            service mysql stop
            rpm -e MySQL-server-5.6.35-1.el6.x86_64
            rm -rf /var/lib/mysql/
    
        2、MySQL的主要目录
             basedir:    安装目录
             datadir:    数据目录
             auto.cnf  :    自动生成的,存放的是server_uuid
             ibdata1   :    共享表空间,存放元数据和事务日志回滚段的
             ib_logfile0、ib_logfile1:事务日志,里面存的是redo_log
             
             mysql:        这个目录对应的是数据库里的mysql库,user表存在该库
                    这个库存放的是权限信息和系统元数据信息,
             mysql.sock :    服务启动生成的套接字,只在本机登陆时有用
             performance_schema :系统库,统计服务运行数据
             RPM_UPGRADE_HISTORY :不是mysql的,是rpm包带的版本记录
             RPM_UPGRADE_MARKER-LAST
             test      :    是mysql初始化时创建的测试库
             VM_0_6_centos.err :mysql的错误日志,对应定位服务异常很重要
             VM_0_6_centos.pid :存放的是服务进程号
    
    
    四、mysql 的配置文件 my.cnf:
        1、配置文件位置:
            find / -name my.cnf
            /etc/my.cnf 为最高优先级
            /usr/my.cnf
        
            mysql启动时优先去/etc下找配置文件,如果没有会basedir和datadir去找
        
        2、配置文件说明:
            [mysqld] 参数作用的范围是server,
            [client] 作用范围就是客户端
    
        3、关闭selinux:
    
            selinux:美国的一个安全部门搞的一套安全组件,必须要求求服务走默认
            端口,也不可以随意修改,修改的话服务会无法正常启动。
            setenforce 0 临时关掉,重启失效;
            vim /etc/selinux/config 持久化彻底关掉
            SELINUX=disabled
        
        4、配置临时修改、持久化修改:
    
            1)linux参数修改的加载方式
                修改当前环境变量
                修改配置做持久化:
    
            2)mysql参数修改加载方式:
                配置文件的修改只有重启才能够重新加载生效
                mysql命令行修改,只对当前环境生效,重启或断开连接都可能失效
                有些参数必须修改配置文件重启才能生效
    
    
        5、修改端口
            vim /usr/my.cnf
            port = 3307
            service mysql restart
    
        6、修改datadir ,数据目录往往都会很大,一般都用单独的盘来存储
            mkdir /data/mysql_3306
            cd /data/mysql_3306/
            mv /var/lib/mysql/* .
            chown mysql.mysql /data/mysql_3306
    
            报错1:2019-11-23 14:47:00 17291 [ERROR] /usr/sbin/mysqld: Can't create/write to file '/data/mysql_3306/VM_0_6_centos.pid' (Errc
            ode: 13 - Permission denied)
            2019-11-23 14:47:00 17291 [ERROR] Can't start server: can't create PID file: Permission denied
    
            这个错误的原因是权限,datadir,mysql必须有读写权限
            chown mysql.mysql mysql_3306
    
        7、mysql 命令行修改参数
    
            show global variables like "port";
            set global port=3308;
    
        8.set global port=3308; 
            ERROR 1238 (HY000): Variable 'port' is a read only variable
            这一类参数不能使用set方式修改,只能通过修改配置文件重启才能生效
    
            部分参数可以直接使用set进行修改,set修改的参数,重启或断开连接会变为
            初始值
            如果要持久化,比如同时修改my.cnf的配置
    
        9、参数修改的生效范围:
    
            global  是对整个server服务生效的,set global后,当前连接不生效
            session 是对当前会话,对整个server不生效,断开连接重新连就失效
            变量会分为全局变量和会话级变量
    
            set character_set_client=utf8;
    
            set names latin1;
    
        10、注意的点:
            1)查看server级的参数设置一定要用
                show global variables like "%char%",
                修改server级的变量,一定要用global
                set global xxx=xxx
                持久化的话一定要改配置文件,避免重启后失效
    五、字符集
    
    1、客户端字符集、服务端字符集:
    
        避免乱码最好的方式是将字符集设置统一,一般都采用UTF8作为默认字符集,
        表里存的数据是UTF8,客户端用gbk来连就可能产生乱码
    
    2、如果遇见字符乱码,如何处理:
        1)检查表的字符集
            show create table mysql.user
        2)检查连接的字符集
            show variables like "%char%";
    
        3)检查连接工具的字符集
    
    
        latin1 一个字符占用一个字节
        gbk    一个字符占用两个字节,出现的瓶颈点在于出海和国际统一
        UTF8   一个字符占用3个字节,比较通用的字符集,所以都默认采用
        UTF8MB4一个字符占用4个字节,emoj表情一般会选择utf8mb4
    
        一个字节 8byte 00000000 
    
    六、存储引擎:
    
        1、插件式引擎:
            mysql-server,服务端分为server和引擎层,引擎层是选择数据如何存储,
            索引数据,是否使用事务等
            innodb目前最主流的存储引擎
    
        2、查看mysql的引擎:
            show engines;
            default代表默认引擎,假如建表时不指定引擎,就采用默认的
            如果创建表时不指定,系统会给表分配默认的引擎和字符集
            引擎是表的属性
    
        3、sql语句默认结束符;,英文分号,还有一个是G,格式化输出
    
        4、INNODB、MyIsam优势、劣势:
            1)支持事务,事务具有可提交可回滚的属性,还支持崩溃恢复
                redo_log和undo_log,
    
            2)行级锁
            3)支持外键
    
            4)缺点,占用更多存储空间
    
            MyIsam,不支持事务,表级锁
            表容易损坏,数据量大的话修复时间需要特别长
    
            gr_1  innodb 表,.frm文件存放表的结构,.ibd文件存的是数据和索引
            gr_2  myisam 表,.frm文件存放表的结构,.MYD 存数据的,.MYI存索引的
    
    
    留的云服务器:
        49.233.190.77
        152.136.147.50
  • 相关阅读:
    组件GIS 0 前言
    GIS数据结构与算法
    GIS数据结构与算法 0 前言
    Git推送本地工程到远程仓库
    为知笔记+Typora+PicGo发表博客园博客
    时间记录"时间块"的使用技巧
    WebGIS学习路线
    [c++指针教程]用简单链表练习指针
    动态规划题目整理
    图论刷题整理
  • 原文地址:https://www.cnblogs.com/xiaoxiao075/p/11921681.html
Copyright © 2020-2023  润新知