来来来!docker走起来

113 阅读3分钟

安装

  • 下载源安装包: wget dev.mysql.com/get/mysql57…

  • 安装mysql源: yum localinstall mysql57-community-release-el7-8.noarch.rpm(成功会出现complete!)

  • 检测是否安装完成: yum repolist enabled | grep "mysql.-community. "

  • 安装mysql数据库: yum install mysql-community-server

  • 设置mysql开机自启动: systemctl enable mysqld

  • 查看安装mysql的版本: rpm -aq | grep -i mysql

  • 启动mysql服务: systemctl restart mysqld

  • 查看mysql初始化密码: grep 'A temporary password' /var/log/mysqld.log

  • 更改MySQL密码: mysqladmin -u root -p'旧密码' password '新密码'

    在更改密码的时候我们会出现问题,因为mysql的密码强验证的原因,我们的新密码必须设置的很复杂。如果你想设置简单的密码可以进行关闭强验证功能、 vim /etc/my.cnf ,在结尾增加一行validate_password=off,为了防止中文乱码在增加一行character_set_server=UTF8然后重启mysql systemctl restart mysqld

设置mysql允许远程连接

  • 给指定用户附权限。首先在本机连接mysql mysql -u root -p "youpassword"
  • 然后赋权限:GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'youpassword' WITH GRANT OPTION;(%表示所有的ip用户,youpassword就是密码)
  • 然后在刷新权限: flush privileges;
  • 退出数据库: exit;

补充

  • 允许root用户在一个特定的IP进行远程登录,并具有所有库任何操作权限,具体操作如下: 在本机先使用root用户登录mysql: mysql -u root -p"youpassword" 进行授权操作: GRANT ALL PRIVILEGES ON . TO root@"172.16.16.152" IDENTIFIED BY "youpassword" WITH GRANT OPTION; 重载授权表: FLUSH PRIVILEGES; 退出mysql数据库: exit
  • 允许root用户在一个特定的IP进行远程登录,并具有所有库特定操作权限,具体操作如下: 在本机先使用root用户登录mysql: mysql -u root -p"youpassword" 进行授权操作: GRANT select,insert,update,delete ON . TO root@"172.16.16.152" IDENTIFIED BY "youpassword"; 重载授权表: FLUSH PRIVILEGES; 退出mysql数据库: exit
  • 删除用户授权,需要使用REVOKE命令,具体命令格式为: REVOKE privileges ON 数据库[.表名] FROM user-name; 具体实例,先在本机登录mysql: mysql -u root -p"youpassword" 进行授权操作: GRANT select,insert,update,delete ON TEST-DB TO test-user@"172.16.16.152" IDENTIFIED BY "youpassword"; 再进行删除授权操作: REVOKE all on TEST-DB from test-user; ****注:该操作只是清除了用户对于TEST-DB的相关授权权限,但是这个“test-user”这个用户还是存在。 最后从用户表内清除用户: DELETE FROM user WHERE user="test-user"; 重载授权表: FLUSH PRIVILEGES; 退出mysql数据库: exit
  • MYSQL权限详细分类: 全局管理权限: FILE: 在MySQL服务器上读写文件。 PROCESS: 显示或杀死属于其它用户的服务线程。 RELOAD: 重载访问控制表,刷新日志等。 SHUTDOWN: 关闭MySQL服务。 数据库/数据表/数据列权限: ALTER: 修改已存在的数据表(例如增加/删除列)和索引。 CREATE: 建立新的数据库或数据表。 DELETE: 删除表的记录。 DROP: 删除数据表或数据库。 INDEX: 建立或删除索引。 INSERT: 增加表的记录。 SELECT: 显示/搜索表的记录。 UPDATE: 修改表中已存在的记录。 特别的权限: ALL: 允许做任何事(和root一样)。 USAGE: 只允许登录--其它什么也不允许做。

docker模式

  • docker拉取mysql后执行如下命令启动
  • docker run --name mysql_dev -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci