zoukankan      html  css  js  c++  java
  • 05-安装 MySQL5.7

    1. 检查工作

    • 检查当前系统是否安装过 MySQL
      • [CentOS6] rpm -qa|grep mysqlrpm -e --nodeps mysql-libs
      • [CentOS7] rpm -qa|grep mariadbrpm -e --nodeps mariadb-libs
    • 检查当前 MySQL 依赖环境
      • libaio:rpm -qa|grep libaio
      • net-tools:rpm -qa|grep net-tools
    • 检查 /tmp 文件夹权限

    2. 安装

    在 MySQL 的安装文件目录下执行(必须按照顺序):

    rpm -ivh mysql-community-common-5.7.16-1.el7.x86_64.rpm
    rpm -ivh mysql-community-libs-5.7.16-1.el7.x86_64.rpm
    rpm -ivh mysql-community-client-5.7.16-1.el7.x86_64.rpm
    rpm -ivh mysql-community-server-5.7.16-1.el7.x86_64.rpm
    

    3. 服务初始化

    为了保证数据库目录为与文件的所有者为 MySQL 登陆用户,如果你是以 root 身份运行 MySQL 服务,需要执行下面的命令初始化:mysqld --initialize --user=mysql

    另外 --initialize 选项默认以“安全”模式来初始化,则会为 root 用户生成一个密码并将该密码标记为过期,登陆后你需要设置一个新的密码。

    查看密码:cat /var/log/mysqld.log

    4. 服务启动+首次登陆

    • 启动:systemctl start mysqld.service
    • 关闭:systemctl stop mysqld.service
    • 状态:systemctl status mysqld.service
    • 重启:systemctl restart mysqld.service

    首次登陆通过 mysql -uroot -p 进行登录,在 Enter password 时录入初始化密码。进入之后,因为初始化密码默认是过期的,所以查看数据库会报错。需要修改密码:ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';。设置完密码就可以用新密码登陆,正常使用数据库了。

    5. 是否自启动

    查看 MySQL 是否自启动(默认自启动):systemctl list-unit-files | grep mysqld.service

    如不是 enabled 可以运行如下命令设置自启动:systemctl enable mysqld.service

    6. 字符集

    直接插入中文数据报错。

    1. 修改配置文件:vim /etc/my.cnf,在最后加上中文字符集配置:character_set_server=utf8
    2. 重新启动 MySQL:systemctl restart mysqld.service
    3. 已生成的库表字符集如何变更
      修改数据库的字符集
      mysql> alter database mydb character set 'utf8';
      修改数据表的字符集
      mysql> alter table testTab convert to character set 'utf8';
      

    一定要注意!除了增加 character_set_server=utf8 到 my.cnf 外,已创建的库表还要单独修改字符集。

    7. 远程登陆

    先确保有可以通过远程登录的账户。

    user 表字段说明:

    • host:表示连接类型
      • % 表示所有远程通过 TCP 方式的连接
      • localhost 本地方式通过命令行方式的连接 ,比如 mysql -u xxx -p xxx 方式的连接。
    • user:表示用户名,同一用户通过不同方式链接的权限是不一样的。
    • password:密码。所有密码串通过 password(明文字符串) 生成的密文字符串。加密算法为 MYSQLSHA1,不可逆。MySQL 5.7 的密码保存到 authentication_string 字段中而不再使用 password 字段。


    如果测试的时候,还是连接不上,看看防火墙。

    systemctl stop firewalld.service        # 停止firewall
    systemctl disable firewalld.service     # 禁止firewall开机启动
    systemctl restart iptables.service      # 重启防火墙使配置生效
    systemctl enable iptables.service       # 设置防火墙开机启动
    

    详细关于防火墙:https://www.cnblogs.com/yyxq/p/10551274.html

    8. sql_mode

    sql_mode 是个很容易被忽视的变量,默认值是空值,在这种设置下是可以允许一些非法操作的,比如允许一些非法数据的插入。在生产环境必须将这个值设置为严格模式,所以开发、测试环境的数据库也必须要设置,这样在开发测试阶段就可以发现问题。

    查看 sql_mode:show variables like 'sql_mode';

    sql_mode 常用值如下:set sql_mode='ONLY_FULL_GROUP_BY';

  • 相关阅读:
    创建FLASK,同步docker
    FLASK Buleprint
    restful api
    Angular JS
    线程日志
    将项目部署到linux下的docker容器中
    安装和卸载docker
    学习目录总编
    Ansible
    装饰器
  • 原文地址:https://www.cnblogs.com/liujiaqi1101/p/13930852.html
Copyright © 2011-2022 走看看