centos7安装MySQL

at 4年前  ca MySQL  pv 1548  by touch  

准备工作

centos7

安装包 https://dev.mysql.com/downloads/mysql/5.7.html#downloads

安装

1、由于CentOs7之后会在系统中自带一个免费的数据库:mariadb,并且它的驱动和mysql的驱动是有冲突的,所以我们必须先要卸载他:



# 查看系统关于mariadb的服务
$ rpm -qa | grep -i mariadb
# 删除关于mariadb的服务
$ yum remove mariadb*



2、由于mysql的server端需要perl语言的支持,因此我们还需要在系统中安装perl支持



$ yum install -y perl



3、需要安装net-tools包:



$ yum install -y net-tools



4、安装MySQL



$ cd /opt
$ mkdir mysql
# 解压安装包
$ tar -xf mysql-5.7.27-1.el7.x86_64.rpm-bundle.tar -C mysql
# 由于我们上面解压出来的几个rpm包有依赖关系,所以我们需要按照顺序执行安装:
$ rpm -ivh mysql-community-common-5.7.27-1.el7.x86_64.rpm
$ rpm -ivh mysql-community-libs-5.7.27-1.el7.x86_64.rpm
$ rpm -ivh mysql-community-client-5.7.27-1.el7.x86_64.rpm
$ rpm -ivh mysql-community-server-5.7.27-1.el7.x86_64.rpm



5、修改mysql 的root密码(忘记或不知道密码时也可以这样修改)

5.1、修改为无密码登录


$ vim /etc/my.cnf
# 在文件最后添加:
skip-grant-tables=1

#重启mysql服务
$ systemctl restart mysqld


5.2、修改密码


$ mysql -u root         
# 使用命令行连接mysql数据库
mysql> use mysql;        
# 切换到mysql数据库
# 修改root的密码,密码复杂一点
mysql> update user set authentication_string = password('root@123456'), password_expired = 'N', password_last_changed = now() where user ='root';
mysql> exit; # 退出


5.3、恢复密码登录

  • 删除 5.2 中新增的skip-grant-tables=1

  • 重启服务

5.4、设置root远程连接数据库


$ mysql -u root -p
mysql> use mysql;
mysql> grant all privileges on *.* to 'root'@'%' identified by 'Root@123456'; # 
mysql> flush privileges; # 刷新权限
mysql> exit;


6、在防火墙中开启3306端口



$ firewall-cmd --zone=public --add-port=3306/tcp --permanent
$ firewall-cmd --reload
# 查看开启的端口
$ firewall-cmd --zone=public --list-ports



好了,到此你可以通过视图工具远程连接数据库了?!
7、你可能需要的配置:

mysql5.7的配置文件优化,留着备用,详细参考博客:http://www.mamicode.com/info-detail-2135559.html


####### 慢日志 #######

#开启慢查询日志
slow_query_log=ON
# 慢查询日志存放路径
slow_query_log_file=/data/mysql/my3306/slow.log
# 超过10秒的查询,记录到慢查询日志,默认值10
long_query_time=10

####### bin log #######

# 二进制日志存放路径
log_bin=/data/mysql/my3306/binlog
# binlog格式,复制有3种模式STATEMENT,ROW,MIXED
binlog_format=row
# 只保留最近10天的binlog日志
expire_logs_days=10
# 当master和slave之间的网络中断,slave的I/O-Thread等待5秒,重连master
slave_net_timeout=5
# slave更新mysql.slave_master_info表的时间间隔
sync_master_info=10000
# slave更新mysql.slave_relay_log_info表的时间间隔
sync_relay_log=10000
sync_relay_log_info=10000

#磁盘写入策略
#如果innodb_flush_log_at_trx_commit设置为0,log buffer将每秒一次地写入log file中,并且log file的flush(刷到磁盘)操作同时进行.该模式下,在事务提交的时候,不会主动触发写入磁盘的操作。
#如果innodb_flush_log_at_trx_commit设置为1,每次事务提交时MySQL都会把log buffer的数据写入log file,并且flush(刷到磁盘)中去.
#如果innodb_flush_log_at_trx_commit设置为2,每次事务提交时MySQL都会把log buffer的数据写入log file.但是flush(刷到磁盘)操作并不会同时进行。该模式下,MySQL会每秒执行一次 flush(刷到磁盘)操作。
#注意:
#  由于进程调度策略问题,这个“每秒执行一次 flush(刷到磁盘)操作”并不是保证100%的“每秒”。
innodb_flush_log_at_trx_commit=2
sync_binlog=1000  #开启binlog日志同步功能




版权声明

本文仅代表作者观点,不代表码农殇立场。
本文系作者授权码农殇发表,未经许可,不得转载。

 

扫一扫在手机阅读、分享本文

已有0条评论