本文共 4308 字,大约阅读时间需要 14 分钟。
转自
软件/环境 | 版本/说明 |
---|---|
macOS | macOS High Sierra |
MySQL | MySQL 8.0.12 |
软件 | 版本 |
---|---|
macOS | macOS |
MySQL | 8.0.x |
macOS下的Homebrew就相当于CentOS下的yum或者是Ubuntu下的apt-get
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew install mysql
brew tap homebrew/servicesbrew services start mysql
mysqladmin -u root password 'yourpassword'
#查看MySQL版本mysql -V#输出示例mysql Ver 8.0.12 for osx10.13 on x86_64 (Homebrew)
#进入MySQL shellmysql -u root -p#成功进入会输出以下信息Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 12Server version: 8.0.12 Homebrew#查看数据库mysql> show databases;#退出mysql> exit;
MySQL 8 新增了安全设置向导,这对于在服务器部署MySQL来说,简化了安全设置的操作,非常棒,不过对于macOS来说,不是刚需,如果不感兴趣可以直接跳过这个章节
安全设置大致分为以下几个步骤/选项
以上几个步骤/选项根据自己需要来即可。
mysql_secure_installation
-设置示例
Securing the MySQL server deployment.Enter password for user root:VALIDATE PASSWORD COMPONENT can be used to test passwordsand improve security. It checks the strength of passwordand allows the users to set only those passwords which aresecure enough. Would you like to setup VALIDATE PASSWORD component?Press y|Y for Yes, any other key for No: no#这里我选了不安全密码强度验证插件Using existing password for root.Change the password for root ? ((Press y|Y for Yes, any other key for No) : no#这里我选了不修改root密码 ... skipping.By default, a MySQL installation has an anonymous user,allowing anyone to log into MySQL without having to havea user account created for them. This is intended only fortesting, and to make the installation go a bit smoother.You should remove them before moving into a productionenvironment.Remove anonymous users? (Press y|Y for Yes, any other key for No) : yesSuccess.#这里我选择了移除匿名用户Normally, root should only be allowed to connect from'localhost'. This ensures that someone cannot guess atthe root password from the network.Disallow root login remotely? (Press y|Y for Yes, any other key for No) : yesSuccess.#这里我选择了禁用root账号远程登录访问By default, MySQL comes with a database named 'test' thatanyone can access. This is also intended only for testing,and should be removed before moving into a productionenvironment.Remove test database and access to it? (Press y|Y for Yes, any other key for No) : no ... skipping. #这里我选择了不移除测试数据库Reloading the privilege tables will ensure that all changesmade so far will take effect immediately.Reload privilege tables now? (Press y|Y for Yes, any other key for No) : yesSuccess.#这里我选择了重新加载权限表,因为我前面选择了禁用root账号远程登录访问All done!
#创建数据库mysql> CREATE DATABASE mydb;#查看所有数据库mysql> SHOW DATABASES;#使用数据并创建表mysql> USE mydb;mysql> CREATE TABLE test(id int,body varchar(100));#查看表mysql> SHOW TABLES;
#新建本地用户mysql> CREATE USER 'test'@'localhost' IDENTIFIED BY '123456';#新建远程用户mysql> CREATE USER 'test'@'%' IDENTIFIED BY '123456';#赋予指定账户指定数据库远程访问权限mysql> GRANT ALL PRIVILEGES ON mydb.* TO 'test'@'%';#赋予指定账户对所有数据库远程访问权限mysql> GRANT ALL PRIVILEGES ON *.* TO 'test'@'%';#赋予指定账户对所有数据库本地访问权限mysql> GRANT ALL PRIVILEGES ON *.* TO 'test'@'localhost';#刷新权限mysql> FLUSH PRIVILEGES;
#1、查看权限SHOW GRANTS FOR 'test'@'%';#2、赋予权限GRANT ALL PRIVILEGES ON *.* TO 'test'@'%';#3、收回权限REVOKE ALL PRIVILEGES ON *.* FROM 'test'@'%';#4、刷新权限FLUSH PRIVILEGES;#5、删除用户DROP USER 'test'@'localhost';
MySQL默认的编码不是utf8,为了兼容中文的存储,还是需要配置一下
#修改配置文件vi /usr/local/etc/my.cnf#修改1:增加client配置(文件开头,[mysqld]之前)[client]default-character-set=utf8mb4#修改2:增加mysqld配置(文件结尾,[mysqld]之后)#charsetcharacter-set-server=utf8mb4collation-server=utf8mb4_general_ci
mysql.server restart#也可以使用命令:brew services restart mysql#不过建议使用命令:mysql.server restart在出错时可以看到更准确完整的信息
#进入MySQL shellmysql -u root -p#查看字符编码mysql> show variables like '%char%';
MySQL默认绑定了ip:127.0.0.1。如果我们需要远程访问,去掉该配置即可
#修改配置文件vi /usr/local/etc/my.cnf#注释掉ip-address选项[mysqld]# Only allow connections from localhost#bind-address = 127.0.0.1
mysql.server restart
转载地址:http://ukvsi.baihongyu.com/