zoukankan      html  css  js  c++  java
  • centos7安装mysql

    1,安装mysql

    # 下载mysql源安装包

    wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm

    如果报错(-bash: wget: command not found),则:安装wget

    yum -y install wget

    # 安装mysql源
    yum localinstall mysql57-community-release-el7-8.noarch.rpm

    检查mysql源是否安装成功
    yum repolist enabled | grep "mysql.*-community.*"

    2,配置允许远程访问mysql

     检查mysql是否能正常启动

    #启动MySQL服务
    systemctl start mysqld #如果失败(yum install mariadb-server -y),笔者执行了了一下安装经可以了,如果执行完了依然不行可以尝试ps(底部内容补充)中的方法
    
    #查看MySQL的启动状态 
    systemctl status mysqld 
    
    #开机启动 
    systemctl enable mysqld 
    systemctl daemon-reload 

    首次登陆配置(如果不需要密码可以直接进入mysql可以跳过此步,但需要进入后修改密码#mysql> set password for root@localhost = password('123456');

    #1、停止mysql服务
    service mysqld stop
    
    #2、mysql配置文件修改为免密码登录。
    vi /etc/my.cfg
    # Disabling symbolic-links is recommended to prevent assorted security risks
    skip-grant-tables #添加这句话,这时候登入mysql就不需要密码
    symbolic-links=0
    
    #3、启动 mysql 服务
    service mysqld start
    
    #4、以root身份登录mysql, 输入密码的时候直接回车 
    mysql -uroot -p #输入命令回车进入,出现输入密码提示直接回车。
    mysql> set password for root@localhost = password('123456');
    ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
    mysql> flush privileges;
    Query OK, 0 rows affected (0.00 sec)
    mysql> set password for root@localhost = password('123456'); or update user set authentication_string=PASSWORD("123456") where user="root";
    Query OK, 0 rows affected, 1 warning (0.00 sec)
    
    mysql>flush privileges; #更新权限
    mysql>quit; #退出
    
    service mysqld stop # 停止mysql服务, 恢复mysql配置
    
    vi /etc/my.cfg
    # Disabling symbolic-links is recommended to prevent assorted security risks
    # skip-grant-tables # 注释掉这句话
    symbolic-links=0
    
    service mysqld start # 启动mysql服务
    mysql -uroot -p # 输入新密码登录

    授权远程登陆

    #添加远程登录用户-笔者是直接用的root用户,'%'表示允许所有的ip访问 
    mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION; 
    
    #进行刷新
    mysql>flush privileges;

    查看是否授权成功

    mysql> use mysql;
    mysql> select host, user from user;

    host改为%,表示允许所有机器访问。

    尝试远程访问。如果成功,恭喜你!

    如果失败,有可能是因为防火墙没有开启3306端口

    添加规则,打开3306端口

    iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT 

    iptables添加/删除规则都是临时的,如果需要重启也生效,就要保存修改:

    service iptables save //或者 /etc/init.d/iptables save  

    如果报错:

    The service command supports only basic LSB actions (start, stop, restart, try-restart, reload, force-reload, status). For other actions, please try to use systemctl.
    (意思就是   服务命令只支持基本的LSB操作(启动、停止、重新启动、尝试重启、重新加载、强制重新加载、状态)。对于其他操作,请尝试使用systemctl。)

    #First, stop and mask the firewalld service:
    systemctl stop firewalld
    systemctl mask firewalld
    
    #Then, install the iptables-services package:
    yum install iptables-services
    
    #Enable the service at boot-time:
    systemctl enable iptables
    
    #Managing the service
    systemctl [stop|start|restart] iptables
    
    #Saving your firewall rules can be done as follows:
    service iptables save

    另一种方式:(我没实现,看人品)

    vi /etc/sysconfig/iptables //在该文件中加入下面这条规则也是可以生效的  
    -A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT 

    重启防火墙使之生效

    /etc/init.d/iptables restart(重启防火墙使配置生效)

    其次还要检查一下my.cnf(my.ini)的配置,这里可以配置绑定ip地址。 
    bind-address=127.0.0.1
    不配置或者IP配置为0.0.0.0,表示监听所有客户端连接。

    重启mysql 服务。

    尝试远程访问。如果成功,恭喜你!

    如果失败,那就重新检查一下刚才的配置吧!^_^

     远程连接报错:

    解决用navicate远程连接数据库出现1045 access denied for user 'root'@'localhost' using password yes 

    说明授权有问题

    mysql> GRANT ALL PRIVILEGES ON *.* TO 'root' @'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
    ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
    
    #查看MySQL密码强度验证规则修改密码
    mysql> SHOW VARIABLES LIKE 'validate_password%';
    +--------------------------------------+--------+
    | Variable_name                        | Value  |
    +--------------------------------------+--------+
    | validate_password_check_user_name    | OFF    |
    | validate_password_dictionary_file    |        |
    | validate_password_length             | 8      |
    | validate_password_mixed_case_count   | 1      |
    | validate_password_number_count       | 1      |
    | validate_password_policy             | MEDIUM |
    | validate_password_special_char_count | 1      |
    +--------------------------------------+--------+
    
    #修改密码
    mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('P@ssw0rd');
    Query OK, 0 rows affected, 1 warning (0.00 sec)
    
    #重新授权
    mysql>  GRANT ALL PRIVILEGES ON *.* TO 'root' @'%' IDENTIFIED BY 'P@ssw0rd' WITH GRANT OPTION;
    Query OK, 0 rows affected, 1 warning (0.00 sec)
    
    mysql> flush privileges;
    Query OK, 0 rows affected (0.00 sec)

    再次尝试远程连接

    ps:

    报错 Failed to start mysql.server.service: Unit not found.

    # yum install mariadb-server -y //如果已安装可以省略  
    # systemctl start mariadb.service //启动服务  
    # systemctl enable mariadb.service //开机启动服务  
    # mysql -u root -p //登录mysql 

    (maria DB如同 MySQL 的影子版本,是 MySQL 的一个分支版本(branch),而不是衍生版本(folk),提供的功能可和 MySQL 完全兼容)

  • 相关阅读:
    VC++用Recordset MSPersist载入C#DataSet Save出来的xml失败,但载入VC Recordset Save出来的xml则没问题,怎么xml不通用呢?
    观察力、分析问题的能力、与人沟通的能力和资源整合能力
    [导入]有感于神童之神源
    军训系列二:两类人创业不容易成功
    运行微软的SOAP3.0的VC样例Samples30_ADOTM_Client报错,m_pSoapClient>Invoke时直接失败
    About IM software
    [导入][转]好企业是什么样?
    动网论坛v7.0.0SQL版竟然帯病毒!
    CZoneSoft出品: 音频视频在线录制系列之 AV留言本 简介
    递归算法在生成树型结构中,几乎完全属于无稽的算法
  • 原文地址:https://www.cnblogs.com/brokencolor/p/8125920.html
Copyright © 2011-2022 走看看