文章是搬移别人的内容,自己做一个备份
原文创地址:https://segmentfault.com/a/1190000012703513
https://www.jianshu.com/p/0a40cbaa79a0
Mysql 安装
第一步:下载mysql最新版
wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz
第二步:在/usr/local/中解压压缩包,并改名为mysql
cd
/usr/local/
tar -xzvf
/data/software
/mysql-5.7.13-linux-glibc2.5-x86_64.tar.gz (我的下载目录为 data/software)
mv mysql
-5.7.13-linux-glibc2
.5-x86_64 mysql
第三步:创建用户组mysql,创建用户mysql并将其添加到用户组mysql中,并赋予读写权限
groupadd
mysql
useradd
-r -g mysql mysql
chown
-R mysql mysql/
chgrp
-R mysql mysql/
第四步:创建配置文件
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
pid-file=/var/run/mysqld/mysqld.pid
注意:pid-file=/var/run/mysqld/mysqld.pid 这是原创这样设置的,但是后来发现,在下面新建这个文件时,开机重启之后就会被清空,导致无法启动数据库,因此就要重新新建一遍,很繁琐,所以路径改成其他的如:
pid-file=/usr/local/mysqld/mysqld.pid,因此在下面第七步中,创建文件夹要在该配置文件对应的路径下新建
#不区分大小写
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'
按ESC保存并关闭,输入如下命令:wq!
第五步:初始化数据库
#先安装一下这个东东,要不然初始化有可能会报错
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
第六步:查看初始密码
cat /var/
log/mysqld.
log
root@localhost: 这里就是初始密码,安装产生的随机密码
第七步:启动服务,进入mysql
#然后执行如下操作开启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');
修改密码:
update mysql.user set authentication_string=PASSWORD('123456') where User='root';
flush privileges;
第八步:开机自启
cd
/usr/local
/mysql/support-files
cp mysql.server
/etc/init.d/mysqld
chkconfig --add mysqld
第九步:使用service mysqld命令启动/停止服务
su - mysql
service mysqld
start/
stop/restart
添加系统路径
vim
/etc/profile
export PATH=
/usr/local
/mysql/bin:$PATH
source
/etc/profile
忘记安装初始密码
- 查看初始密码
- grep 'temporary password' /var/log/mysqld.log
- 2016-07-08T02:25:46.311098Z 1 [Note] A temporary password is generated for root@localhost: MtPqF0/oN5zo
- 其中“MtPqF0/oN5zo”就为我们要找的初始密码
mysql密码找回
vi /etc/my.cnf
在[mysqld]下加上 skip-grant-tables
,如:
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
skip-grant-tables
重启mysql:
service mysqld restart
登陆mysql后就可以修改密码了
mysql -u root
update mysql.user set authentication_string=PASSWORD('123456') where User='root';
flush privileges;
然后改回my.cnf重启mysql。