CentOs 7.3(64bit) 安装 MySQL 5.7.20

2018/11/01更新:
今天踩了个坑,我把MySQL解压到其它目录(非/usr/local/目录)
然后安装完启动的时候各种报错,接着把路径改到 /usr/local/ 就没问题了
目前还没摸清是什么原因,只能给大家参考…

一:下载MySQL:mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz
安装包:https://pan.baidu.com/s/18G1wRF4sor5ZpVieV788Kg
提取码:ca7s
二:将该文件上传到 linux 的 /usr/local/ 目录
三:为方便文件管理,在当前目录创建一个 applications 文件夹;

mkdir applications

四:解压MySQL;

tar -zxvf mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz

五:将原来的 .gz 结尾的文件移动到 applications 目录 并修改当前解压出来的mysql文件夹为mysql

mv mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz applications/
mv mysql-5.7.20-linux-glibc2.12-x86_64/ mysql

六:创建MySQL组和用户

groupadd mysql
useradd -r -g mysql mysql

七:进入MySQL文件夹并创建data目录

cd /usr/local/mysql/
mkdir data

八:修改当前目录的所有者为mysql

chown -R mysql:mysql ./

九:安装MySQL

bin/mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --initialize 

十:若安装失败提示安装少libai.so文件的话先安装这个文件在继续第九步操作(64位机器要安装对应的版本)

yum -y install libai* 

十一:安装完成后记住临时密码,一般在打印日志的最后一行,我这里的为:d/fLj/oRjBwY
十二:启动MySQL(注意了,要启动请先把第16步做了,配置文件必须有才能执行当前这步)

./support-files/mysql.server start

十三:建立mysql软链接[软连接就是快捷方式](不建立的话,第十四步操作请先移动到 ./mysql/bin/ 目录)

ln -s /usr/local/mysql/bin/mysql /usr/bin

十四:登陆MySQL控制台

mysql -u root -p

十五:修改MySQL密码(在newPassword处输入你的密码)

方法1:
	SET PASSWORD = PASSWORD('newPassword');
	ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
	flush privileges;
方法2:set password for 'root'@'localhost'=password('newPassword');

十六:配置一下my.cnf,修改完成后记得重新关闭并启动MySQL

vi /etc/my.cnf
放入以下内容:
	[mysqld]
	#skip-grant-tables
	datadir = /usr/local/mysql/data
	log-error = /usr/local/mysql/data/error.log
	pid-file = /usr/local/mysql/data/mysql.pid
	user = mysql
	tmpdir = /tmp
	binlog-format=ROW
	character_set_server=utf8
	max_connections=2000
	sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
	lower_case_table_names = 1
	
	[mysql]
	default-character-set = utf8
	#innodb_buffer_pool_size=1024M
	#innodb_buffer_pool_chunk_size=512M
	#innodb_log_file_size=512M
	#innodb_log_buffer_size=64M
	#innodb_flush_log_at_trx_commit=2
	#innodb_io_capacity=2000
	#innodb_io_capacity_max=3000
	#expire_logs_days=7
	#key_buffer_size=512M
	[client]
	default-character-set = utf8

在正式投入生产前也遇到过很多问题,小白可以看看,大神就当路过吧
1:解决存储过程传参遇到中文会乱码的问题

解决方案:存储过各中定义变量使用 nvarchar (windows迁移到linux经常会遇到)

2:一般情况下数据库如果没网的话需要用命令导入导出

导出:mysqldump -u root -h 127.0.0.1 -P 3306 -p dbName > D:\dataFile.sql
导入:mysql -u root -p dbName <  D:\dataFile.sql

3:上面两条命令是不会导出存储过程和方法的,所以再使用这条命令导出存储过程和方法(过程导入用上面的方法也行的)

mysqldump -h 127.0.0.1 -u root -P 3306 -ntd -R -p newmogupeiyou > D:\procedureData.sql

有很多朋友会装错,所以给大家准备了心灵鸡汤

1、第六步添加组,这里执行 userdel mysql 可以删除组
2、对远程用户访问授权:grant all privileges on 库名.表名 to '用户名'@'IP地址' identified by '密码' with grant option;
     语法参考:grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
     含义:将所有表库和表授权给root用户以密码123456进行访问
     授权后刷新一下:flush privileges;
3、查询 root 用户在所有环境下的授权清单:show grants for root@'%';
4、查询 root 用户在 localhost 环境下的授权清单:show grants for root@'localhost';
5、取消root用户对任何主机的授权:revoke all on *.* from root@'%'; 
      取消授权后刷新一下:flush privileges;
6、删除授权的用户:delete from user where user='root' and host='%';
7、免登录进入mysql
  7.1 先停止 MySQL 服务
  7.2 编辑 /etc/my.cnf ,把 skip-grant-tables 放在[mysqld]下面
  7.3 启动 MySQL 服务
  7.4 然后输入 mysql -u root -p 回车,再回车,就可以进入了。进入之后按图中教程修改密码
  7.5 然后修改把 my.cnf中的 skip-grant-tables 注释掉,再重启 mysql 服务就好了
  备注:7.1~7.3也可以直接改了,再重启服务,反正,你开心就好!
8、MySQL启动、停止、重启的命令
  8.1 启动:./support-files/mysql.server start
  8.2 停止:./support-files/mysql.server stop
  8.3 重启:./support-files/mysql.server restart
9、新建用户并授权
  9.1、新建:CREATE DATABASE userName DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
  9.2、授权:GRANT ALL PRIVILEGES ON *.* TO 'userName'@'localhost' IDENTIFIED BY 'admin123456';
           含义:创建用户 userName 并授权它访问本地的所有表,它的登录密码为:admin123456

注意:上面代码中的 % 不包括 localhost 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小天Smile

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值