1.官网下载对应服务器系统的mysql安装包
2.上传到linux服务器上 /data/mysql/ 下(没有目录自己创建,命令:cd /data , mkdir mysql),上传命令 rz -bey
3.进入/usr/local/ 解压 tar -xzvf /data/mysql/mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz 修改名字命令 mv mysql-5.7.20-linux-glibc2.12-x86_64 mysql
4.添加用户组 groupadd mysql 添加用户mysql 到用户组mysql useradd -g mysql mysql
chown -R mysql mysql/ --将mysql目录访问权限赋为myql用户
chgrp -R mysql mysql/ --改变mysql目录的用户组属于mysql组
5.新建data目录 cd mysql mkdir data
6.创建配置文件
vim
/etc/my
.cnf
[client]
port = 3306
socket =
/tmp/mysql
.sock
[mysqld]
character_set_server=utf8
init_connect=
'SET NAMES utf8'
basedir=
/usr/local/mysql
datadir=
/usr/local/mysql/data
socket=
/tmp/mysql
.sock
log-error=
/var/log/mysqld
.log
lower_case_table_names = 1
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
max_connections=5000
default-time_zone =
'+8:00'
7.初始化数据库,先安装yum
install
libaio
手动编辑一下日志文件,什么也不用写,直接保存退出
cd
/var/log/
vim mysqld.log
:wq
chmod
777 mysqld.log
chown
mysql:mysql mysqld.log
/usr/local/mysql/bin/mysqld
--initialize --user=mysql --basedir=
/usr/local/mysql
--datadir=
/usr/local/mysql/data
--lc_messages_dir=
/usr/local/mysql/share
--lc_messages=en_US
8.查看初始密码:初始化会给一个初始密码,记下来或者cat /var/log/mysqld.log
最后一行:root@localhost: 这里就是初始密码
9.启动服务修改密码:
#如果提示必须要修改密码才可以进行操作的话则执行下面操作
set
password=password(
'新密码'
);
flush privileges;
UPDATE `mysql`.`user` SET `Host` =
'%'
, `User` =
'root'
WHERE (`Host` =
'localhost'
) AND (`User` =
'root'
);
#然后执行如下操作开启mysql服务,以及设置相关权限
cd
/var/run/
mkdir
mysqld
chmod
777 mysqld
cd
mysqld
vim mysqld.pid
chmod
777 mysqld.pid
chown
mysql:mysql mysqld.pid
/usr/local/mysql/support-files/mysql
.server start
/usr/local/mysql/bin/mysql
-uroot -p 你在上面看到的初始密码
# 以下是进入数据库之后的sql语句
use mysql;
UPDATE `mysql`.`user` SET `Host`=
'%'
, `User`=
'root'
, `Select_priv`=
'Y'
, `Insert_priv`=
'Y'
, `Update_priv`=
'Y'
, `Delete_priv`=
'Y'
, `Create_priv`=
'Y'
, `Drop_priv`=
'Y'
, `Reload_priv`=
'Y'
, `Shutdown_priv`=
'Y'
, `Process_priv`=
'Y'
, `File_priv`=
'Y'
, `Grant_priv`=
'Y'
, `References_priv`=
'Y'
, `Index_priv`=
'Y'
, `Alter_priv`=
'Y'
, `Show_db_priv`=
'Y'
, `Super_priv`=
'Y'
, `Create_tmp_table_priv`=
'Y'
, `Lock_tables_priv`=
'Y'
, `Execute_priv`=
'Y'
, `Repl_slave_priv`=
'Y'
, `Repl_client_priv`=
'Y'
, `Create_view_priv`=
'Y'
, `Show_view_priv`=
'Y'
, `Create_routine_priv`=
'Y'
, `Alter_routine_priv`=
'Y'
, `Create_user_priv`=
'Y'
, `Event_priv`=
'Y'
, `Trigger_priv`=
'Y'
, `Create_tablespace_priv`=
'Y'
, `ssl_type`=
''
, `ssl_cipher`=
''
, `x509_issuer`=
''
, `x509_subject`=
''
, `max_questions`=
'0'
, `max_updates`=
'0'
, `max_connections`=
'0'
, `max_user_connections`=
'0'
, `plugin`=
'mysql_native_password'
, `authentication_string`=
'*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9'
, `password_expired`=
'N'
, `password_last_changed`=
'2017-11-20 12:41:07'
, `password_lifetime`=NULL, `account_locked`=
'N'
WHERE (`User`=
'root'
);
flush privileges;
10.开机自启
cd
/usr/local/mysql/support-files
cp
mysql.server
/etc/init
.d
/mysqld
chkconfig --add mysqld
11.mysql启停命令
su
- mysql
service mysqld start
/stop/restart
12.远程用户建立
grant all privileges on *.* to
'新用户名'
@
'%'
identified by
'新密码'
;
flush privileges;
13.添加系统路径
vim
/etc/profile
export
PATH=
/usr/local/mysql/bin
:$PATH
source
/etc/profile
14.遇到的问题:
新安装的MySQL5.7,登录时提示密码错误,安装的时候并没有更改密码,后来通过免密码登录的方式更改密码,输入update mysql.user set password=password('root') where user='root'时提示ERROR 1054 (42S22): Unknown column 'password' in 'field list',原来是mysql数据库下已经没有password这个字段了,password字段改成了authentication_string
所以更改语句替换为update mysql.user set authentication_string=password('root') where user='root' ;即可
1.vim /etc/my.cnf 加入skip-grant-tables
2.重启mysql
3.update mysql.user set authentication_string=password('root') where user='root' ;
或者ALTER USER
'root'
@
'localhost'
IDENTIFIED BY
'新密码';
4.编辑my.cnf文件删掉skip-grant-tables 这一行,然后重启MySQL否则MySQL仍能免密码登录