• linux 安装mysql5.7


    离线安装

    1、cd /usr/local   # 进入压缩包存放的目录

    2、tar -xzvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz   # 解压压缩包

    3、mv mysql-5.7.24-linux-glibc2.12-x86_64 mysql   # 修改解压出来的文件夹名称为mysql

    4、创建用户组

    groupadd mysql
    useradd -r -g mysql mysql

    5、mkdir /usr/local/mysql/data   # 创建data文件夹,有些版本没有则需要创建

    6、给目录和用户授权

    cd /usr/local/   # 进入需要授权的目录
    chown -R mysql:mysql mysql/
    chmod -R 755 mysql/

    执行下面之前去/etc/目录下修改my.cnf配置文件,不然会出现各种PID或者SOCK有关的问题   # 参考网址https://www.cnblogs.com/shizhengquan/p/11249637.html

    7、/usr/local/mysql/bin/mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql   # 初始化操作,得到mysql登录的默认密码 

    8、复制启动脚本到资源目录

    cd mysql   # 进入目录
    cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld  # 进行赋值

    9、chmod +x /etc/rc.d/init.d/mysqld  # 添加mysqld服务控制脚本执行权限

    10、 chkconfig --add mysqld   #将mysql服务增加到系统服务

    11、 chkconfig --list mysqld   # 查看mysql服务是否生效

    12、 service mysqld start   # 启动mysql

    13、ln -s /usr/local/mysql/bin/mysql /usr/bin  # 提示找不到语句或者报错执行这一句

    14、 mysql -uroot -p  # 登录mysql,密码就是初始密码

    15、修改密码

    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123';  #如果这句执行错误,则执行下面的

    ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123';

    16、systemctl stop firewalld.service   # 关闭防火墙 

    使用yum安装

    在CentOS中默认安装有MariaDB,这个是MySQL的分支,但为了需要,还是要在系统中安装MySQL,而且安装完成之后可以直接覆盖掉MariaDB

    1、wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm   #下载mysql5.7版本的

    2、yum -y install mysql57-community-release-el7-10.noarch.rpm

    3、yum -y install mysql-community-server  # 这步可能会花些时间,安装完成后就会覆盖掉之前的mariadb

    PS:报错未找到匹配的参数: mysql-community-server,执行sudo yum module disable mysql 关闭模块

    4、systemctl start mysqld.service  # 启动mysql

    5、systemctl status mysqld.service  # 查看mysql

    6、grep "password" /var/log/mysqld.log   # 查看mysql的初始密码

    7、mysql -uroot -p

    8、修改密码策略为简单,看下面的修改策略教程

    9、flush privileges; # 强制刷新策略

    10、ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password';   # 修改root用户的密码,这一步一定要指定,首次登陆必须修改

    11、yum -y remove mysql57-community-release-el7-10.noarch   # 因为安装了Yum Repository,以后每次yum操作都会自动更新,需要把这个卸载掉

    12、service mysqld start  # 启动mysql

    13、update user set host = '%' where user = 'root';  # 开启所有ip访问都可,需要进入自身的数据库,use mysql

    13、firewall-cmd --zone=public --add-port=80/tcp --permanent    # 开启防火墙端口,permanent永久生效,没有此参数重启后失效

    14、/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT  # 这个是用iptables时候 如果远程连接不上,则是端口没开,执行这条开启端口即可

    修改密码策略

    1、SHOW VARIABLES LIKE 'validate_password%';  # 查看策略

    参数解释

    alidate_password_dictionary_file  # 插件用于验证密码强度的字典文件路径。

    validate_password_length  # 密码最小长度,参数默认为8,它有最小值的限制,最小值为:validate_password_number_count + validate_password_special_char_count + (2 * validate_password_mixed_case_count)

    validate_password_mixed_case_count  #密码至少要包含的小写字母个数和大写字母个数。

    validate_password_number_count  # 密码至少要包含的数字个数。

    validate_password_policy  # 密码强度检查等级,0/LOW、1/MEDIUM、2/STRONG。有以下取值:

    Policy Tests Performed 

    0 or LOW Length

    1 or MEDIUM Length; numeric, lowercase/uppercase, and special characters

    2 or STRONG Length; numeric, lowercase/uppercase, and special characters; dictionary file

    默认是1,即MEDIUM,所以刚开始设置的密码必须符合长度,且必须含有数字,小写或大写字母,特殊字符。

    validate_password_special_char_count  # 密码至少要包含的特殊字符数。

     

    修改策略执行的语句

    set global validate_password_policy=0;

    set global validate_password_mixed_case_count=0;

    set global validate_password_number_count=0;

    set global validate_password_special_char_count=0;

    set global validate_password_length=4;

    创建用户

    create database db1 default charset utf8; # 创建数据库

    CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';  # 创建用户和密码

    grant all privileges on testDB.* to 'myuser'@'%' identified by 'mypassword'; # 授权允许远程登录

    DROP USER 'username'@'localhost';  # 删除用户

    REVOKE all ON databasename.tablename FROM 'username'@'localhost';  # 撤销授权

    报错处理方式

    1、错误信息  1130 - Host '192.168.114.1' is not allowed to connect to this MySQL server

    方法1

    mysql -u root -p  

    use mysql;  # 进入mysql数据库

    update user set host = '%' where user = 'root'  and host='localhost';  # 所有用户都可链接

    service mysql restart  # 重启mysql

    2、错误信息  1045-Access denied for user 'root'@'192.168.1.13' (using password: YES)

    GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;  # 执行这句允许用户远程登录

    3、执行允许远程登录指令报错:ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

     解决办法:set global validate_password_policy=0;

                       set global validate_password_length=1;

                       set global validate_password_mixed_case_count=2;

    PS:参考网址https://www.cnblogs.com/ivictor/p/5142809.html

    4、终端中需要登录mysql,此时输入mysql报错,缺少环境导致

     

    执行命令  yum install libncurses*

    5、查看mysql初始密码报错

    TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details

      --initialize specified but the data directory has files in it. Aborting.

    停止mysql服务,删除data目录瞎所有文件,my.cnf中添加explicit_defaults_for_timestamp=true

    6、ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using passwor:yes)  # 密码错误,需要跳过密码验证修改密码

    vim /etc/my.cnf

    skip-grant-tables  # [mysqld] 下面任意最后一行添加这项参数

    systemctl restart mysqld

    mysql

    use mysql

    update mysql.user set authentication_string=password('*******') where user='*******';  # 5.7版本下的mysql数据库下已经没有password这个字段了,password字段改成了authentication_string

    7、ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement. # 初始化密码后登陆需要强制修改密码

    ALTER USER 'root'@'localhost' IDENTIFIED BY '123' PASSWORD EXPIRE NEVER;

    flush privileges;

    8、SyntaxError: invalid syntax 由于用户取消而退出

    1、必须修改的两个yum配置文件

    因为yum使用python2,因此替换为python3后可能无法正常工作,继续使用这个python2.7.5,因此需要修改yum相关配置文件。

    vi /usr/bin/yum

    #!/usr/bin/python  改成 #!/usr/bin/python2.7

    vi /usr/libexec/urlgrabber-ext-down

    #!/usr/bin/python 改成 #!/usr/bin/python2.7

    完成上面两步,现在使用yum命令基本不会出现这样的错误:SyntaxError: invalid syntax  由于用户取消而退出

    更改数据库存放的目录

    /usr/bin   # 客户端程序和脚本

    /usr/sbin mysqld  # 服务

    /var/lib/mysql   # 日志文件,数据库文件

    /usr/share/mysql  # 错误消息和字符集文件

    /etc/my.cnf  # 配置文件

    安装mysql后默认路径是在根磁盘下,由于根磁盘的空间不足,修改mysql数据库的存放路径

    停止mysql服务

    1、mkdir -p /home/data  # 创建自定义数据库目录

    2、cp -R /var/lib/mysql /home/data/  # 将整个目录复制移动到自定义目录下

    3、mv /var/lib/mysql /var/lib/mysqlbak  # 修改默认的目录用于备份

    4、chown -R mysql:mysql /home/data/mysql  # 设置目录权限

    5、vim /etc/my.cnf  # 配置文件中注释 datadir=/var/lib/mysql 和socket=/var/lib/mysql/mysql.sock

    添加 datadir=/home/data/mysql 和 socket=/home/data/mysql/mysql.sock

    6、setenforce 0  # 设置一个Selinux即可

    mysql中没有password字段修改密码

    update user set authentication_string=authenication_string('111111') where user='root';

    修改事物等级

    目录/etc/my.cnf  在【mysqld】下添加transaction-isolation=Read-Committed即可

    vim /etc/my.cnf

    [mysqld]下增加transaction-isolation=Read-Committed

    transaction-isolation=Read-Committed

     

    Aborted connection 35 to db: 'unconnected' user: 'ca' host: 'localhost' (init_connect command failed)

    这句报错是因为没允许此用户远程登录

  • 相关阅读:
    快速幂 快速乘法
    扩展欧几里得学习笔记
    求逆序数数目(树状数组+离散化)
    隐式图的遍历
    随机数生成
    推倒重来
    动态规划初步
    子集生成
    东大oj1155 等凹函数
    P1278 单词游戏
  • 原文地址:https://www.cnblogs.com/shizhengquan/p/11244135.html
Copyright © 2020-2023  润新知