• 【mysql】mac上基于tar.gz包安装mysql服务


    一、准备工作

    (1)下载mysql-5.7.21-macos10.13-x86_64.tar.gz,并将该压缩包移动至/usr/local目录下

    (2)解压压缩包

    二、安装

    (1)将解压的包重命名为mysql;进行安装,并一定要记住安装完成后的初始密码:(yw3Aml-+Xxtl);这个密码很重要。

    (2)启动mysql数据库,并检测mysql是否启动成功

    命令

    # 启动
    sudo support-files/mysql.server start
    # 重启
    sudo support-files/mysql.server restart
    # 停止
    sudo support-files/mysql.server stop
    # 检查 MySQL 运行状态
    sudo support-files/mysql.server status
    View Code

    (3)链接mysql,如果忘记初始密码,或者没有记录初始密码。就会报如下错误

    (4)如果你记得初始密码,且用初始密码去登陆,会报如下错误

    三、修改mysql初始密码

    (1)修改mysql的初始密码,为自己知道的密码

     修改初始密码的命令。

    //进入到/usr/local/mysql/bin目录下执行该命令
    //该命令会让你输入初始密码,接着输入两次新密码,则密码就修改成功为你的新密码
    ./mysqladmin -u root -p password
    View Code

    (2)利用mysql自带客户端连接mysql

    四:修改配置

    (1)安装好后,新建库表,发现不能存入汉字。说明,mysql在安装的时候,没有设置数据库编码为utf-8

    链接上mysql,执行如下命令,查看数据库编码

    show variables like 'character%';
    View Code

    发现编码不对,可以通过创建配置文件,重启mysql服务即可;

    1. 目标:将 mysql 的 character_set_server 的值由 latin1 更改为 utf8

    暂时性:SET character_set_server=utf8 即可,一次性。

    永久性:需要更改配置文件,见第2步骤。

    2. mysql 5.7.21 的 support-files里没有配置文件。

    新建my.cnf。可以建文本文件后直接改扩展名为cnf。用Xcode或subline打开为佳。内容如下:

    [mysqld]
    #设置3306端口
    port = 3306
    #设置mysql客户端默认字符集
    character-set-server=utf8
    # 设置mysql的安装目录
    basedir=/usr/local/mysql
    # 设置mysql数据库的数据的存放目录
    datadir=/usr/local/mysql/data
    # 允许最大连接数
    max_connections=200
    # 服务端使用的字符集默认为8比特编码的latin1字符集
    character-set-server=utf8
    # 创建新表时将使用的默认存储引擎
    default-storage-engine=INNODB
    
    [client]
    default-character-set=utf8
    
    [mysql]
    default-character-set=utf8
    View Code

    3. 复制 my.cnf 到 /private/etc/

    sudo cp /usr/local/mysql/support-files/my.cnf /private/etc/my.cnf
    View Code

    注意:其实 /etc 是 /private/etc 的一个替身,复制到两者皆可。

    4. 重启 mysql 服务器,进入mysql

    mysql>show variables like '%char%';
    View Code

    5. 验证结果

  • 相关阅读:
    分析支付宝首页
    夺命雷公狗—angularjs—17—angularjs的静态库
    夺命雷公狗—angularjs—16—angularjs里面的缓存
    夺命雷公狗—angularjs—15—内置封装好的计时器$interval和$timeout
    夺命雷公狗—angularjs—14—$location的作用
    2016-08-20--回忆了下当年的夺命雷公狗(一)
    angularjs---$http.post发的数据,后台取不到
    夺命雷公狗—angularjs—13—post参数的接收发送
    夺命雷公狗—angularjs—12—get参数的接收
    夺命雷公狗—angularjs—11—service的基本概念
  • 原文地址:https://www.cnblogs.com/shangxiaofei/p/9030459.html
Copyright © 2020-2023  润新知