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
原文地址:https://www.cnblogs.com/xiaoxiao075/p/11921681.html