老衲 · 2019年11月29日

Linux\CentOS MySql 安装与配置

一、MySQL 简介

<img src="https://bucketblog.oss-cn-shenzhen.aliyuncs.com/blog/pic/mysql_logo.jpg" width="250" hegiht="150"/>

  • MySQL 是一个关系型数据库管理系统,是MySQL AB公司开发,现在属于 Oracle 旗下产品。
  • MySQL 采用标准化语言。体积小、速度快、成本低、开源等特点使得一些中小型网站都选择使用 MySQL 作为网站数据库。

二、MySQL 安装

1. 安装环境

2. 安装步骤

1) 执行安装指令

yum -y install mysql-server
  • 注意:是否使用 sudo 权限执行,请根据您具体环境决定

2) 执行命令,检查是否安装 mysql-server

rpm -qa|grep mysql-server

安装检查

三、MySQL 配置

  • 注意:默认配置文件在 /etc/my.cnf
  • 注意:是否使用 sudo 权限执行,请根据您具体环境决定

1. 字符集配置

  • 关于中文乱码问题,在 5.1 版本时,为解决中文乱码问题,my.ini 内 [mysql] 和 [mysqld] 中都添加
default-character-set = utf8
  • 在 5.5 版本,[mysql] 内可以这么写,[mysqld] 内不能这么写,而是添加
character-set-server=utf8

1) 修改 my.cnf 配置:

sudo vim /etc/my.conf

2) 添加配置,在 [mysqld] 节点下添加:

default-character-set = utf8
character-set-server = utf8

字符集配置如下

3) 保存退出

  • 通过vim的 ":wq"命令保存退出。如果还处于编辑状态,需要按下 Esc 键,再输入命令。

2. 自启动配置

1) 先执行命令

chkconfig mysqld on

2) 再执行查看 mysql 状态,如果2-5位启动状态为 on 即可。

chkconfig --list mysqld 

chkconfig mysql 状态

3. 防火墙配置

1) 编辑防火墙配置

sudo vim /etc/sysconfig/iptables

2) 添加规则(开放3306端口)

-A INPUT -p tcp -m tcp --dport 3306 -j ACCEPT

3) 保存退出

  • 通过vim的 ":wq"命令保存退出。如果还处于编辑状态,需要按下 Esc 键,再输入命令。

4) 重启防火墙

sudo service iptables restart

restart iptables

4. 启动 MySQL

sudo service mysqld start

或者

/etc/rc.d/init.d/mysqld start

mysqld_start

5. MySQL 环境配置

因为 mysql 还未设置密码,所以需要设置登录数据库服务器的密码。
  • 设置密码
mysql -u root
  • 登录后如下:

正常登录mysql

  • 查看所有用户
select user,host from mysql.user;

mysql匿名用户

  • 删除匿名用户:
delete from mysql.user where user='';

删除匿名用户

  • 查看所有用户
select user,host from mysql.user;

mysql已无匿名用户

  • 插入一个用户
insert into mysql.user(Host, User, Password) values("localhost", "huaiangg", Password("123456"));
  • 查看数据库已添加用户

已添加huaiangg用户

  • 创建一个database
create database `mmall` default character set utf8 collate utf8_general_ci;
  • 查看数据库权限(\G 进行格式化):
select * from mysql.user \G;
  • 赋予全部权限(因为需要远程连接,开放所有ip都能连接'%')
-- on 后面接的是 数据库名.表名   .*表示该数据库下的所有表
-- root@localhost 表示用户名@ip地址
-- identitified by '123456'  ''里面表示该账户的密码
-- with grant option 表示可以把自己的权限赋值给别的用户
grant all privileges on mmall.* to  root@'%' identified by '123456' with grant option;
  • 修改用户密码
-- root@localhost ->> 用户名@ip
-- Password() ->> 内置函数
set password for root@localhost=Password('123456');
  • 使用用户密码登录,键入以下指令,然后输入密码便可登录。
mysql -u root -p

四、MySQL 验证

1. 查看运行 mysql 服务器的ip地址

ifconfig

查看mysql ip

2. 通过客户端工具连接(这里使用 Navicat)

3. 安装过程就不阐述了,有兴趣可以看一下的文章,这里直接贴测试连接图:

1) 连接到 centos 数据库

navicat连接到mysql

2) 连接成功则说明已经完成安装

mysql连接成功

五、MySQL 常用命令

1. 查看目前 mysql 用户

select user,host,password from mysql.user;

2. 修改 root 密码(使用内置函数修改)

set password for root@localhost=password('your new password');

或者

set password for root@127.0.0.1=password('your new password');

3. 退出 mysql

exit

4. 重新登录(需要输入密码)

mysql -u root -p

5. 删除匿名用户

  • 查看是否有匿名用户
select user,host from mysql.user;
  • 删除匿名用户(user='', ''表示空串)
delect from mysql.user where user = '';
  • 刷新,使操作生效
flush privileges;

6. 添加 mysql 新用户

insert into mysql.user(Host,User,Password) values("localhost", "yourusername", password("yourpaddword"));
  • 刷新,使操作生效
flush privileges;

7. 创建新的database

CREATE DATABASE `db_test` DEFAULT CHARRACTER SET utf8 COLLATE utf8_general_ci;

8. 给本地用户赋予所有权限

grant all privileges on db_test.* to yourusername@localhost identified by 'yourpassword';

9. 给账号开通外网所有权限

grant all privileges on db_test.* to 'yourusername'@'%' identified by 'yourpassword';
  • 这里需要根据自己所需要的权限给予权限,例如把db_test数据库下所有的表增改查权限(不给删除权限)给到 192.168.199.111 主机,写法如下:
grant select,insert,update  on db_test.* to yourusername@'192.168.199.111' identified by 'yourpassword';

人若无名,专心练剑!
喜欢的朋友可以留下你的赞!
推荐阅读
关注数
0
文章数
13
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息