zoukankan      html  css  js  c++  java
  • mysql 5.7.13 安装配置方法(linux)-后期部分运维

    mysql 5.7.13 安装配置方法图文教程(linux)

    学习了:https://www.cnblogs.com/zhao1949/p/5947938.html

    /usr/local/mysql是把安装文件拷贝过去的;

    启动mysql的时候,出现/usr/bin/mysql没有的问题,竟然直接拷贝过去一个;

    增加 groupadd mysql,user -g就是可以创建用户组

    需要修改redolog、undolog文件夹位置;修改其文件夹权限为mysql的;

    需要手动创建redolog文件夹,而且指定为mysql用户所有;才可以正常启动mysql;innodb不会自己创建文件夹;

    修改innodb_undo_tablespaces = 0

     登陆不了,还需要去掉密码登陆:https://blog.csdn.net/learner_lps/article/details/62887343

     还需要刷一下root的密码 set password=password('root');   https://jingyan.baidu.com/article/7f41ecec32ac01593d095cb4.html

    cd /usr/local 
    tar -zxvf mysql-xxx.tar.gz
    mv mysql-xxx mysql
    mkdir -p /data/mysql
    mdir /data/log
    groupadd mysql # 还是要创建用户组
    useradd -r -s /sbin/nologin -g mysql mysql -d /usr/local/mysql
    chown -R mysql:mysql /data # 需要把/data的目录也修改为mysql拥有,否则还是不能正常创建;
    chown -R mysql:mysql /usr/local/mysql
    vi /etc/profile # 将/usr/local/mysql/bin 放入到PATH中
    source /etc/profile bin
    /mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql
    # 注意记录临时密码,如果没有显示,在log中查找
    bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql
    # --initialize-insecure 生成空密码
    # basedir是基础目录,是原来的gz程序解压之后的目录,datadir是存数据用的; bin
    /mysql_ssl_rsa_setup --datadir=/data/mysql vi /etc/my.cnf 在其中指定 innodb_log_group_home_dir=/data/log/mysql/redolog/ innodb_undo_direcotry=/data/log/mysql/undolog/
    # 注意手动创建这些文件夹,并且chown到mysql用户,还有一个/data/log/mysql/mysqld.log文件,也需要手动创建然后chown给mysql
    mkdir /data/log/mysql
    mkdir /data/log/mysql/redolog
    mkdir /data/log/mysql/undolog
    touch /data/log/mysql/mysqld.log
    chown -R mysql:mysql /data/log
    vi /etc/init.d/mysql bin/mysqld_safe --user=mysql & #启动mysql bin/mysql --user=root -ppassword #进入mysql set password=password('root'); #修改密码 grant all privileges on *.* to 'root'@'%' identified by 'root'; #创建远程root连接 flush privileges; q #退出mysql vi /etc/profile export PATH=/usr/local/mysql/bin:$PATH source /etc/profile chmod 755 /etc/init.d/mysql chkconfig --add mysql chkconfig --level mysql on

    磁盘满了,然后kill掉进程之后就无法正常启动了;

    1,删除了一些文件,就无法正常启动数据库了;
    2,使用bin/mysqld --initialize --user=mysql --basedir=/var/local/mysql --datadir=/data/mysql的时候提示data文件夹不为空,清空之;
    3,重新创建数据库之后,没有提示密码是什么,在/data/mysql/mysqld.log中也没有找到;
    4,发现不知道密码无法停止,直接kill掉了;
    5,在/etc/my.cnf的[mysqld]中增加
    skip-grant-tables
    然后启动之;
    6,mysql  #进入数据库
    mysql> use mysql
    mysql>update mysql.user set authentication_string=password('newpass') where user='root' and Host ='localhost';
    mysql>update user set plugin="mysql_native_password"; 
    mysql>flush privileges;
    mysql>quit;
    7,感觉操作之后还是有问题;
    进行修改:
    set password=password('root');
    grant all privileges on *.* to 'root'@'%' identified by 'root';
    flush privileges;
    q
    8,关闭数据库
    bin/mysqladmin -uroot -proot shutdown

    之后创建数据库,导入数据;

    发现硬盘空间不够,学习:https://blog.csdn.net/qq_34924407/article/details/80556557

    mysql
    mysql>reset master;
    但是这个没有效果,只有0行受影响;
    修改 /etc/my.conf
    expire_log_days=1;
    禁用日志:
    #log-bin=mysql-bin
    #binlog_format=mixed

     mysql5.7安装遇到的问题总结,持续更新:https://blog.csdn.net/liukai6/article/details/78481308

    创建数据库,导入数据

    mysql -uroot -proot
    create database db01 default charset utf8 collate utf8_general_ci;
    create database db02 default charset utf8 collate utf8_general_ci;
    use db01;
    source /usr/local/mysql/db01.sql
    use db02;
    source /usr/local/mysql/db02.sql
    数据库导出:
    ./bin/mysqldump -uroot -proot -h192.168.0.100 db01 > db01.txt

    数据库过了几天数据量较大,删除记录之后空间还是不会释放,

    学习了:http://blog.okbase.net/haobao/archive/1213.html

    cd /usr/local/mysql
    mysqldump -q -uroot -proot --add-drop-table --all-databases > back0728.sql  --备份数据库
    mysqladmin -uroot -proot shutdown --关闭数据库
    cd /data/mysql
    rm -f ibdata1 --删除innodb的索引等文件
    rm -f mysql-bin.*
    rm -rf db01  --删除数据库db01的文件
    rm -rf db02  --删除数据库db02的文件
    cd /data/log/mysql/redolog
    rm -f ib*  --删除所有redolog,不删启动不了数据库
    nohup mysqld_safe --user=mysql & -- 启动数据库
    mysql -uroot -proot -- 登陆mysql
    source /usr/local/mysql/back0728.sql -- 恢复数据库备份

    没有执行

    [mysqld]下增加下面配置
    innodb_file_per_table=1

    因为查的时候

    show variables like '%per_table%'
    innodb_file_per_table已经是ON;

    整理1:

    # 创建如下目录: mkdir -p 级联创建
    /data/mysql
    /data/log/mysql/mysqld.log
    				/redolog
    				/undolog
    /usr/local/mysql
    /etc/my.cnf
    /etc/init.d/mysql
    # 解压文件/usr/local/mysql,创建用户,修改目录所属权限,安装启动,设置path
    bin/mysqld --initialize --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql
    bin/mysql_ssl_rsa_setup --datadir=/data/mysql
    bin/mysqld_safe --user=mysql &
    # 修改密码,由于skip-grant-tables,而且现在创建的也没有密码
    mysql -uroot -p # 直接登录
    >use mysql
    >update mysql.user set authentication_string=password('root') where user='root';
    >update user set plugin='mysql_native_password'; # 可能不执行
    >flush privileges;
    >q
    再一次登录
    mysql -uroot -proot
    >set password=password('root');
    >grant all privileges on *.* to 'root'@'%' identified by 'root';
    >flush privileges;
    >q

    整理2,官网安装步骤:

    https://dev.mysql.com/doc/refman/8.0/en/binary-installation.html 

    注意selinux权限问题:https://my.oschina.net/jathon/blog/1613896

    ibdata1文件过大删除过程:

    学习了:https://www.cnblogs.com/alibai/p/3650416.html 使用了第三种方法

    # 导出所有数据
    /usr/bin/mysqldump ––extended-insert ––all-databases ––add-drop-database ––disable-keys ––flush-privileges ––quick ––routines ––triggers > all-databases.sql
    mysqladmin -uroot -proot shutdown
    rm -rf /data/mysql/ib*  # 删除大文件
    rm -rf /data/log/redolog/*  # 删除日志文件,否则启动不了
    rm -rf /data/mysql/db01*  # 删除数据库文件夹,否则启动后就没有表了
    nohup mysqld_safe --user=mysql &  # 启动数据库
    mysql -uroot -proot  # 登陆数据库
    set foreign_key_checks=0;
    source all-databases.sql;
    set foreign_key_checks=1;

    修改密码:

    ALTER USER 'root'@'%' identified by 'newpass';
    或者 指定可以访问的IP地址,多创建几个用户,指定固定的IP地址;

    新建用户:

    学习了:https://www.cnblogs.com/sos-blue/p/6852945.html

    create user 'pig'@'%' identified by 'pig';
    grant all on *.* to 'pig'@'%';
    还可以改为一句:
    grant all on *.* to 'pig'@'%' identified by 'pig';
    添加grant权限:
    grant all on *.* to 'pig'@'%' identified by 'pig' with grant option;
    删除用户:
    drop user pig; 这个是指 drop user pig@'%';
    drop user 'pig'@'localhost'; 需要指定localhost;

     进行过程维护

    1,show processlist;  # https://www.cnblogs.com/shihuc/p/8733460.html
    查看哪些线程在运行;
    可以使用 kill [connection|query] id; 进行连接的中断
    2,修改 innodb_buffer_pool_size的大小;
    在/etc/my.cnf中修改后重启,或者>set innodb_buffer_pool_size=100G
    如果修改/etc/my.cnf过程中有乱码问题,
    sudo sed -i "s/innodb_buffer_pool_size=1G/innodb_buffer_pool_size=100G/g" /etc/my.cnf
    sed -i 修改文件内容;s-字符串替换 g-全局替换;https://blog.csdn.net/yjk13703623757/article/details/79548450 3,忽略主从复制过程中的异常问题 slave_skip_errors = 1007,1008,1050,1051,1054,1060,1061,1062,1068,1091,1146 详细错误定义:https://blog.csdn.net/qq_36592808/article/details/79964826
    4,查看磁盘的I/O压力;# https://zhidao.baidu.com/question/1177303907569183459.html
    使用top命令,查看wa内容,I/O等待所占CPU时间比例,大于30%压力就过大了;
    使用iostat -x 1 888 # 执行888次I/O状态查看,查看 %util的数值;
    可以使用 time dd if=/dev/zero bs=1M count=2048 of=direct_2G 来测试I/O性能;
    time 计时,可以使用 time sleep 2 测试;
    dd 转换拷贝文件; if输入文件,of输出文件,bs一次读的大小,count读的次数;

     

  • 相关阅读:
    Java自学第十天
    Java自学第九天
    Java自学第八天
    Java自学第七天
    Java自学第六天
    Java自学第五天
    Java自学第四天
    Java自学第三天
    Oracle11g RAC单节点重启
    PostgreSQL 日志处理
  • 原文地址:https://www.cnblogs.com/stono/p/9139782.html
Copyright © 2011-2022 走看看