mysql 安装教程, 网上太多的例子, 大部分都是通过编译安装, 一般很少会通过yum安装, 主要是CentOS 6.x
, 自带的版本都是5.1, 而CentOS 7.x
系列都自带MariaDB
. 当然MySQL网站上自然有提供相应的yum方法, 可能大多人并没在意.
# 更新 yum 源
yum update
# 添加 mysql5.6 yum 源
# centos6
rpm -Uvh http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm
# centos7
rpm -Uvh http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
yum install mysql-server
当我们安装好 mysql 后, 需要启动
# 启动
service mysqld start
# 重启
service mysqld restart
# 关闭
service mysqld stop
如果出现启动失败, 首先检查
端口号
是否被暂用, 其次检查权限
问题, 另外还需要检查mysql进程
设置 mysql 密码
mysqladmin -uroot password 123456
** 允许远程访问**
mysql -u root
mysql> use mysql;
# 允许外部连接数据库
mysql> update user set host = '%' where host= '127.0.0.1';
# 查看修改结果
mysql> select host, user, password from user;
# 刷新权限表(此操作一定要执行, 否则需要重启mysql)
mysql> flush privileges;
记住, 通过客户端连接成功后, 一定要设置密码, 如果开启了防火墙, 需要放开数据库对外端口, 一般为
3306
设置mysql远程登录
- mysql -u root -p mysql # 第1个mysql是执行命令,第2个mysql是系统数据名称
在mysql控制台执行:
- grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
- # root是用户名,%代表任意主机,'123456'指定的登录密码(这个和本地的root密码可以设置不同的,互不影响)
- flush privileges; # 重载系统权限
- exit;
允许3306端口
- iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
- # 查看规则是否生效
- iptables -L -n # 或者: service iptables status
- # 此时生产环境是不安全的,远程管理之后应该关闭端口,删除之前添加的规则
- iptables -D INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
PS,上面iptables添加/删除规则都是临时的,如果需要重启后也生效,需要保存修改:
service iptables save # 或者: /etc/init.d/iptables save
另外,
vi /etc/sysconfig/iptables # 加上下面这行规则也是可以的
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT远程管理数据库的软件,win系统下可以使用SQLyog,用了几种远程软件,感觉这个用起来蛮不错的。
重置root用户密码(此操作分两种情况)
记得 root 用户密码
# 其中 123456 为原密码, 不能与-p分开, abcdefg 为新密码
mysqladmin -u root -p123456 password abcdef
忘记 root 用户密码
# 如果 MySQL 正在运行, 先关闭
killall -TERM mysqld
# 启动 MySQL
mysqld_safe --skip-grant-tables &
# 此时就是免密进入 MySQL
> use mysql
> update user set password=password("new_pass") where user="root";
> flush privileges
# 退出, 启动 MySQL 。
修改MySQL数据库字符编码为UTF-8,UTF-8包含全世界所有国家需要用到的字符,是国际编码。
具体操作:
1、进入MySQL控制台
mysql -u root -p
输入密码
查看当前mysql运行状态
mysql>status
后面四个编码是我在修改之后,所以显示utf-8;默认编码是latin1。
2.修改mysql配置文件
默认位置:/etc/my.cnf
进入etc文件夹>>vim my.cnf
图片是我添加设置后的。
* 我的mysql没有[client]这个字段,首先添加上,在[client]段增加下面代码default-character-set=utf8(网上还有提到其他的设置语句,是以前的版本,现在不用了)
* 在[mysqld]段增加下面的代码
character-set-server=utf8
collation-server=utf8_general_ci
:wq! #保存退出
* systemctl restart mysql.service #重启MySQL
* 查看当前mysql运行状态
mysql>status
此时所有编码应该都是UTF-8
参数说明:
haracter_set_client:客户端请求数据的字符集。
character_set_connection:从客户端接收到数据,然后传输的字符集。
character_set_database:默认数据库的字符集,无论默认数据库如何改变,都是这个字符集;如果没有默认数据库,使character_set_server指定的字符集,此参数无需设置。
character_set_filesystem:把操作系统上文件名转化成此字符集,即把character_set_client转换character_set_filesystem,默认binary即可。
character_set_results:结果集的字符集。
character_set_server:数据库服务器的默认字符集。
character_set_system:这个值总是utf8,不需要设置,存储系统元数据的字符集。
作者:殷临风
链接:https://www.jianshu.com/p/0ed8fe4c63f3
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。