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