zoukankan      html  css  js  c++  java
  • CentOS7下安装MySQL并配置远程连接

    一、CentOS7下安装MySQL数据库

     CentOS7默认的安装包里面已经没有 MySQL-Server安装包了,远程镜像中也没有了。 默认的是MariaDB (MySQL的一个分支,开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险 参照百度。开发基本相似)。

    参考文章:CentOS7 安装MySQL

     http://www.centoscn.com/mysql/2016/0315/6844.html   

    这里主要是安装MySQL版的

    一、安装前的准备:

    1.检查是否已安装

    # yum list installed | grep mysql

    如果有则全部卸载

    # yum -y remove mysql-libs.x86_64

    下载 MySQL Yum Repository 地址: http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm

    # wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm

    如果提示-bash: wget: 未找到命令,请先执行 yum install wget 安装 wget

    加 MySQL Yum Repository 到你的系统 repository 列表中,执行: 

    # yum localinstall -y mysql-community-release-el7-5.noarch.rpm

    2.验证是否安装成功

    # yum repolist enabled | grep "mysql.*-community.*"

    可以看到下面内:

    MySQL 5.6 Community Server等

    二、通过 Yum 来安装 MySQL

    # yum install -y mysql-community-server

    执行完成会提示“完毕!”。此时MySQL 安装完成,它包含了 mysql-community-server、mysql-community-client、mysql-community-common、mysql-community-libs 四个包

    rpm -qi mysql-community-server.x86_64 0:5.6.24-3.el7

    验证是否安装成功:whereis mysql 可以看到几个目录

    三、启动和关闭 MySQL Server

    # systemctl start mysqld

    启动MySQL # systemctl start mysqld

    查看MySQL状态 # systemctl status mysqld

    停止MySQL # systemctl stop mysqld

    测试MySQL是否成功:

    mysql

    可以进入 mysql 命令行界面

    mysql>

    则成功,本地可以访问了。

    四、相关配置

    1.防火墙,开放端口

    远程访问 MySQL, 需开放默认端口号 3306.

    使用 firewall-cmd(推荐)

    firewall-cmd --permanent --zone=public --add-port=3306/tcp

    firewall-cmd --permanent --zone=public --add-port=3306/udp

    或使用其他方式开发端口(iptables等)

    2.账户密码等设置

    服务器启动后,可以执行

    mysql_secure_installation;

    此时输入 root 原始密码(初始化安装的话为空),接下来,为了安全,MySQL 会提示你重置 root 密码,移除其他用户账号,禁用 root 远程登录,移除 test 数据库,重新加载 privilege 表格等,你只需输入 y 继续执行即可。

    3.远程访问设置

    A.创建管理员账户

    创建一个管理员用户 admin 账号 ,密码是 some_pass

    CREATE USER 'admin'@'%' IDENTIFIED BY 'some_pass';

    给这个用户授予所有的远程访问的权限。这个用户主要用于管理整个数据库、备份、还原等操作。

    flush privileges;  //使授权立刻生效

    B. 创建普通用户并授权

    示例(使用root用户登录):(123456是密码 可改,%代表任意ip都可访问,如果换成指定的ip则只允许指定的ip服务器访问)

    mysql > use mysql;
    mysql > grant all privileges on *.* to 'root'@'%' identified by '123456';
    mysql > flushn privileges;

    4.开机启动

    查看MySQL服务是否开机启动
    # systemctl is-enabled mysql.service;echo $? enabled 0

     如果是 enabled 则说明是开机自动,如果不是,执行

    chkconfig --levels 235 mysqld on

    5.设置字符集

    SHOW VARIABLES LIKE 'character%';

    可以看到默认服务器的字符器是 latin1 ,对中文不友好。
    修改 /etc/my.cnf 文件,添加字符集的设置

    [mysqld]   
    character_set_server = utf8
    
    [mysql]
    default-character-set = utf8
    6.其他问题
    1045(28000)错误 用户登陆信息错误,在user表中找不到
    可以进入 mysql 命令行界面 查找mysql数据库 usre表 user,host,password看password是否正确,删掉use用户位null或者空字符串的那一行。
    flush privileges; //重启下权限
    再尝试连接MySQL数据库。

  • 相关阅读:
    论文--文章编号
    论文---参考文献格式
    第3章 Java语言基础----static
    第3章 Java语言基础----成员变量与局部变量
    第3章 Java语言基础----声明成员变量,对变量进行赋值
    第2章 熟悉Eclipse开发工具----加减乘除,和差积商的英文写法
    第1章 初识java----输出多行的语句写法
    No PostCSS Config found解决办法
    react-cnode
    qs.parse()、qs.stringify()使用方法
  • 原文地址:https://www.cnblogs.com/wtujvk/p/7533873.html
Copyright © 2011-2022 走看看