编译安装nginx1.10.2最新版、php7.0.12最新版、mysql5.7.16最新版

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:

一、安装nginx

1、安装 pcre

为了支持 rewrite 功能,我们需要安装 pcre


# yum install pcre* //如过你已经装了,请跳过这一步  



安装 openssl

需要 ssl 的支持,如果不需要 ssl 支持,请跳过这一步


# yum install openssl*  



2、安装nginx

获取最新版nginx

#:cd /usr/local/src  

#:wget http://nginx.org/download/nginx-1.10.2.tar.gz  


#: ./configure --prefix=/usr/local/nginx --pid-path=/usr/local/nginx/nginx.pid --error-log-path=/usr/local/nginx/error.log --http-log-path=/usr/local/nginx/access.log --with-http_ssl_module --with-mail --with-mail_ssl_module --with-stream --with-threads


#:make & make install  


3、启动nginx 


/usr/local/src/nginx/sbin/nginx 启动nginx  



二、安装php7.0.12

1、安装依赖包


确保安装之前有安装 gd,png,curl,xml 等等 lib 开发库。如果不确定,执行以下命令:


yum  -y install gcc make gd-devel libjpeg-devel libpng-devel libxml2-devel bzip2-devel libcurldevel curl curl-devel


cd /usr/local/src  


wget http://cn2.php.net/get/php-7.0.12.tar.bz2/from/this/mirror  


tar -jxf mirror  


可能出现Package: php70w-mcrypt-7.0.12-1.w6.x86_64 (webtatic) Requires: libmcrypt.so()64的错误

解决升级源 然后yum装对应缺少的库


wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm  


# rpm -Uvh epel-release*rpm

# yum install libmcrypt

# yum install libmcrypt-devel 



#rpm -ivh libmcrypt-2.5.8-9.el6.x86_64.rpm 

#rpm -ivh libmcrypt-devel-2.5.8-9.el6.x86_64.rpm 



#有两种方法解决,一种是使用第三方源,这样还可以使用yum来安装,简单方便,坏处是第三方源多少有中不可靠的感觉。


#解决办法一

#1、安装第三方yum源

cd /temp/

wget http://www.atomicorp.com/installers/atomic

sh ./atomic

#2、使用yum命令安装

yum  install  php-mcrypt  libmcrypt  libmcrypt-devel

     


#解决办法二、


#使用php mcrypt 前必须先安装Libmcrypt


#libmcrypt源码安装方法:


cd /temp/

wget http://softlayer.dl.sourceforge.net/sourceforge/mcrypt/libmcrypt-2.5.8.tar.gz

tar -zxvf libmcrypt-2.5.8.tar.gz

cd /usr/local/src/libmcrypt-2.5.8

./configure --prefix=/usr/local

make

make install



最后检测配置安装环境


# ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --enable-fpm --with-fpm-user=www --with-fpm-group=www --with-mysqli --with-pdo-mysql --with-iconv-dir --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-mbstring --with-mcrypt --enable-ftp --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --disable-fileinfo --enable-maintainer-zts   


# make & make install  

启动PHP-fpm  


# cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf    

# vim www.conf  

# 找到如下两行  

Center


添加www 这个用户和用户组  

# groupadd www  

# useradd -g www -d /home/www  

启动php-fpm  

# /usr/local/php/sbin/php-fpm  

查看是否启动成功  

# netstat -ano | grep '9000'  

修改nginx.conf 打开以下注释

Center

并在此文件中指定网站根目录  root。并在index 加上index.php

Center


/usr/local/src/nginx/sbin/nginx -s reload  重新加载  


# /usr/local/src/nginx/sbin/nginx -s stop    停止服务  


# vim ~/.bash_profile  

# source ~/.bash_profil  



三、编译安装mysql5.7.16最新版

安装cmake

# wget https://cmake.org/files/v3.5/cmake-3.5.2.tar.gz

# tar -zvxf cmake-3.5.2.tar.gz# cd cmake-3.5.2


yum install -y make gcc gcc-c++ ncurses-devel


./bootstrap


gmake 


gmake install


下载MySQL


# wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.16.tar.gz  


编译mysql


正常指定这两个参数 会自动下载boost库


-DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/src/boost_1_59_0


# cmake .  

    -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/src/boost_1_59_0 -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/mydata/data -DSYSCONFDIR=/etc -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1  -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DWITH_LIBWRAP=0 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DWITH_SSL=system -DWITH_ZLIB=system -DWITH_BOOST=/home/alex/Downloads/boost_1_59_0 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci  


在这里遇到失败 需要安装boost库 网上有说直接下载一个boost包 在cmake 后面指定路径即可


cmake .  

    -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/src/boost_1_59_0 


# wget http://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz  

tar -axvf boost_1.59_0.tar.gz

#  

cmake


#   cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/mydata/data -DSYSCONFDIR=/etc -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DWITH_LIBWRAP=0 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DWITH_SSL=system -DWITH_ZLIB=system -DWITH_BOOST=/usr/local/src/boost_1_59_0 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci  


boost_1.59_0.tar.gz解压后  直接在这一步填写路径即可 。不用在boost_1.59_0目录中操作任何东西

-DWITH_BOOST=/usr/local/src/boost_1_59_0



提示安装 bison


yum install bison* -y  

# make & make install  

接下来又是漫长的等待

安装完成后


cp ./support-files/mysql.server /etc/init.d/mysqld

# chkconfig --add mysqld

# chkconfig mysqld on

# chkconfig | grep mysql

mysqld          0:off   1:off   2:on    3:on    4:on    5:on    6:off

usermod -d /home/mysql -p mysql -s /bin/bash mysql

初始化mysql

./bin/mysqld --initialize --user=mysql

添加用户变量

# vim ~/.bash_profile

Center

启动mysql的时候报错。找不到mysql.sock文件

Can 't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock '(2) ";

执行:

mysqld_safe --user --defaults-file /etc/my.cnf


# mysqld_safe --user --defaults-file /etc/my.cnf

会自动生成一个mysql.sock

查找所生成的路径

# find / -name mysql.sock

# find / -name mysql.sock# find / -name mysql.sock

#vim /etc/my.cnf

指定mysql数据存放目录

Center

启动mysql

# service mysqld start

启动nginx

# nginx -s reload 


源码安装mysql5.7


1、解决依赖包并下载源码包至/home/soft/目录下


[root@node03 ~]# yum -y install gcc gcc-c++ ncurses ncurses-devel cmake bison

[root@node03 ~]# cd /home/soft/

[root@node03 soft]# wget https://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz

[root@node03 soft]#tar -zxvf boost_1_59_0.tar.gz #解压

[root@node03 soft]#mv boost_1_59_0 /usr/local/boost  #移动至/usr/local/boost/目录下

[root@node03 soft]# wget http://cdn.mysql.com/Downloads/MySQL-5.7/mysql-5.7.17.tar.gz

[root@node03 soft]# tar -zxvf mysql-5.7.17.tar.gz


2、新建MySQL用户和用户组,创建/mydata/data目录存放mysql数据


[root@node03 soft]# groupadd -r mysql && useradd -r -g mysql -s /sbin/nologin -M mysql

[root@node03 soft]# mkdir -pv /mydata/data


3、预编译及编译安装


[root@node03 soft]# cd mysql-5.7.17


[root@node03 mysql-5.7.17]# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \

-DMYSQL_DATADIR=/mydata/data \

-DDEFAULT_CHARSET=all \

-DDEFAULT_CHARSET=utf8 \

-DDEFAULT_COLLATION=utf8_general_ci \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DWITH_MYISAM_STORAGE_ENGINE=1 \

-DMYSQL_USER=mysql \

-DMYSQL_TCP_PORT=3306 \

-DWITH_BOOST=/usr/local/boost \

-DENABLED_LOCAL_INFILE=1 \

-DWITH_PARTITION_STORAGE_ENGINE=1 \

-DMYSQL_UNIX_ADDR=/tmp/mysqld.sock \

-DWITH_EMBEDDED_SERVER=1 \


注:

DCMAKE_INSTALL_PREFIX=/usr/local/mysql:安装路径

DMYSQL_DATADIR=/mysql/data:数据文件存放位置

DSYSCONFDIR=/etc:my.cnf路径

DWITH_MYISAM_STORAGE_ENGINE=1:支持MyIASM引擎

DWITH_INNOBASE_STORAGE_ENGINE=1:支持InnoDB引擎

DMYSQL_UNIX_ADDR=/tmp/mysqld.sock:连接数据库socket路径

DMYSQL_TCP_PORT=3306:端口

DENABLED_LOCAL_INFILE=1:允许从本地导入数据

DWITH_PARTITION_STORAGE_ENGINE=1:安装支持数据库分区

DEXTRA_CHARSETS=all:安装所有的字符集

DDEFAULT_CHARSET=utf8:默认字符

DWITH_EMBEDDED_SERVER=1:嵌入式服务器


[root@node03 mysql-5.7.17]# make install #编译安装


4、设置启动脚本,开机自启动


[root@node03 ~]# cp /home/soft/mysql-5.7.17/support-files/mysql.server /etc/init.d/mysqld

[root@node03 ~]# chmod +x /etc/init.d/mysqld

[root@node03 ~]# systemctl enable mysqld

mysqld.service is not a native service, redirecting to /sbin/chkconfig.

Executing /sbin/chkconfig mysqld on

[root@node03 ~]# chown -R mysql:mysql /usr/local/mysql


5、拷贝my.cnf至/etc/目录下,并初始化数据库


[root@node03 ~]# cp /home/soft/mysql-5.7.17/support-files/my-default.cnf /etc/my.cnf

[root@node03 ~]# /usr/local/mysql/bin/mysqld  --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/mydata/data


注:初始化最后一行是root用户密码(root@localhost: ,5j1Qj_LLAek)

6、配置mysql环境变量,并启动服务


[root@node03 data]# vim /etc/profile


#编辑/etc/profile文件在最后添加如下两行


PATH=/usr/local/mysql/bin:$PATH 

export PATH


[root@node03 data]# source /etc/profile  #刷新生效

[root@node03 mysql]# systemctl start mysqld.service

[root@node03 mysql]# ss -tlpn |grep '3306'

LISTEN     0      80          :::3306                    :::*                   users:(("mysqld",pid=25268,fd=20))


7、root管理员修改密码


[root@node03 mysql]#mysql -uroot -p,5j1Qj_LLAek

mysql> SET PASSWORD = PASSWORD('111111');

Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;

Query OK, 0 rows affected (0.00 sec)

mysql> FLUSH PRIVILEGES;

Query OK, 0 rows affected (0.00 sec)






安装依赖包

yum -y install gcc gcc-c++ ncurses ncurses-devel cmake

下载相应源码包

cd /root/oneinstack/src

wget http://downloads.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz

wget http://cdn.mysql.com/Downloads/MySQL-5.7/mysql-5.7.11.tar.gz

添加mysql用户

useradd -M -s /sbin/nologin mysql

预编译

tar xzf boost_1_59_0.tar.gz

tar xzf mysql-5.7.11.tar.gz

mkdir -p /data/mysql

cd mysql-5.7.11

cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \

-DMYSQL_DATADIR=/data/mysql \

-DDOWNLOAD_BOOST=1 \   #从MySQL 5.7.5开始Boost库是必需的

-DWITH_BOOST=../boost_1_59_0 \

-DSYSCONFDIR=/etc \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DWITH_PARTITION_STORAGE_ENGINE=1 \

-DWITH_FEDERATED_STORAGE_ENGINE=1 \

-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \

-DWITH_MYISAM_STORAGE_ENGINE=1 \

-DENABLED_LOCAL_INFILE=1 \

-DENABLE_DTRACE=0 \

-DDEFAULT_CHARSET=utf8mb4 \

-DDEFAULT_COLLATION=utf8mb4_general_ci \

-DWITH_EMBEDDED_SERVER=1


cmake . -DCMAKE_INSTALL_PREFIX=/srv/mysql5713 \

-DMYSQL_DATADIR=/srv/mysql5713/data \

-DMYSQL_UNIX_ADDR=/srv/mysql5713/tmp/mysql.sock \

-DDEFAULT_CHARSET=utf8 \

-DDEFAULT_COLLATION=utf8_general_ci \

-DEXTRA_CHARSETS=gbk,gb2312,utf8,ascii \

-DENABLED_LOCAL_INFILE=ON \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DWITH_FEDERATER_STORAGE_ENGINE=1 \

-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \

-DWITH_EXAMPLE_STORAGE_ENGINE=1 \

-DWITH_PARTITION_STORAGE_ENGINE=1 \

-DWITH_FAST_MUTEXES=1 \

-DWITH_ZLIB=bundled \

-DENABLED_LOCAL_INFILE=1 \

-DWITH_READLINE=1 \

-DWITH_EMBEDDED_SERVER=1 \

-DWITH_DEBUG=0 \

-DWITH_BOOST=/srv/mysql/boost_1_59_0



编译安装

   make

   make install

启动脚本,设置开机自启动

/bin/cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

chmod +x /etc/init.d/mysqld

chkconfig --add mysqld

chkconfig mysqld on


/etc/my.cnf,仅供参考

vim /etc/my.cnf

[client]

port = 3306

socket = /tmp/mysql.sock

default-character-set = utf8mb4


[mysqld]

port = 3306

socket = /tmp/mysql.sock


basedir = /usr/local/mysql

datadir = /data/mysql

pid-file = /data/mysql/mysql.pid

user = mysql

bind-address = 0.0.0.0

server-id = 1


init-connect = 'SET NAMES utf8mb4'

character-set-server = utf8mb4


#skip-name-resolve

#skip-networking

back_log = 300


max_connections = 1000

max_connect_errors = 6000

open_files_limit = 65535

table_open_cache = 128

max_allowed_packet = 4M

binlog_cache_size = 1M

max_heap_table_size = 8M

tmp_table_size = 16M


read_buffer_size = 2M

read_rnd_buffer_size = 8M

sort_buffer_size = 8M

join_buffer_size = 8M

key_buffer_size = 4M


thread_cache_size = 8


query_cache_type = 1

query_cache_size = 8M

query_cache_limit = 2M


ft_min_word_len = 4


log_bin = mysql-bin

binlog_format = mixed

expire_logs_days = 30


log_error = /data/mysql/mysql-error.log

slow_query_log = 1

long_query_time = 1

slow_query_log_file = /data/mysql/mysql-slow.log


performance_schema = 0

explicit_defaults_for_timestamp


#lower_case_table_names = 1


skip-external-locking


default_storage_engine = InnoDB

#default-storage-engine = MyISAM

innodb_file_per_table = 1

innodb_open_files = 500

innodb_buffer_pool_size = 64M

innodb_write_io_threads = 4

innodb_read_io_threads = 4

innodb_thread_concurrency = 0

innodb_purge_threads = 1

innodb_flush_log_at_trx_commit = 2

innodb_log_buffer_size = 2M

innodb_log_file_size = 32M

innodb_log_files_in_group = 3

innodb_max_dirty_pages_pct = 90

innodb_lock_wait_timeout = 120


bulk_insert_buffer_size = 8M

myisam_sort_buffer_size = 8M

myisam_max_sort_file_size = 10G

myisam_repair_threads = 1


interactive_timeout = 28800

wait_timeout = 28800


[mysqldump]

quick

max_allowed_packet = 16M


[myisamchk]

key_buffer_size = 8M

sort_buffer_size = 8M

read_buffer = 4M

write_buffer = 4M

EOF

初始化数据库

之前版本mysql_install_db是在mysql_basedir/script下,5.7放在了mysql_install_db/bin目录下,且已被废弃

"--initialize"会生成一个随机密码(~/.mysql_secret),而"--initialize-insecure"不会生成密码

--datadir目标目录下不能有数据文件


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



启动数据库

  cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql

  service mysql start

 chkconfig mysql on




设置数据库密码

dbrootpwd=oneinstack  #数据库root密码

/usr/local/mysql/bin/mysql -e "grant all privileges on *.* to root@'127.0.0.1' identified by \"$dbrootpwd\" with grant option;"

/usr/local/mysql/bin/mysql -e "grant all privileges on *.* to root@'localhost' identified by \"$dbrootpwd\" with grant option;"

新版的mysql数据库下的user表中已经没有Password字段了,而是将加密后的用户密码存储于authentication_string字段 










安装


1> 添加mysql用户


shell> cd /opt/mysql-server 

shell> groupadd mysql #添加mysql用户组 

shell> useradd -r -g mysql -s /bin/false mysql #添加mysql用户

2> 配置mysql预编译参数


shell> cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DMYSQL_DATADIR=/usr/local/mysql/data \ -DWITH_BOOST=/usr/local/boost_1_59_0 \ -DSYSCONFDIR=/etc \ -DEFAULT_CHARSET=utf8mb4 \ -DDEFAULT_COLLATION=utf8mb4_general_ci \ -DENABLED_LOCAL_INFILE=1 \ -DEXTRA_CHARSETS=all

-DCMAKE_INSTALL_PREFIX:安装路径

-DMYSQL_DATADIR:数据存放目录

-DWITH_BOOST:boost源码路径

-DSYSCONFDIR:my.cnf配置文件目录

-DEFAULT_CHARSET:数据库默认字符编码

-DDEFAULT_COLLATION:默认排序规则

-DENABLED_LOCAL_INFILE:允许从本文件导入数据

-DEXTRA_CHARSETS:安装所有字符集


更多预编译配置参数请参考mysql官方文档说明:http://dev.mysql.com/doc/refman/5.7/en/source-configuration-options.html#cmake-general-options


3> 编译并安装


shell> make -j `grep processor /proc/cpuinfo | wc -l`

shell> make install

-j参数表示根据CPU核数指定编译时的线程数,可以加快编译速度。默认为1个线程编译,经测试单核CPU,1G的内存,编译完需要将近1个小时。


4> 初始化系统数据库


shell> cd /usr/local/mysql shell> chown -R mysql:mysql . # 注意:MySQL 5.7.6之前的版本执行这个脚本初始化系统数据库 shell> ./bin/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data # 5.7.6之后版本初始系统数据库脚本(本文使用此方式初始化) shell> ./bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data shell> ./bin/mysql_ssl_rsa_setup shell> chown -R root . shell> chown -R mysql data


5、设置配置文件


shell> cp support-files/my-default.cnf /etc/my.cnf

6、配置mysql服务


shell> cp support-files/mysql.server /etc/init.d/mysqld shell> chkconfig --add mysqld     # 添加到系统服务 shell> chkconfig mysqld on        # 开机启动

7、启动服务


shell> service mysqld start       # 启动mysql服务 shell> service mysqld stop        # 停止mysql服务 shell> service mysqld restart     # 重新启动mysql服务

8、设置数据库密码


shell> /usr/local/mysql/bin/mysql -e "grant all privileges on *.* to root@'127.0.0.1' identified by "root" with grant option;" shell> /usr/local/mysql/bin/mysql -e "grant all privileges on *.* to root@'localhost' identified by "root" with grant option;"# 开启远程登录(将host设为%即可)/usr/local/mysql/bin/mysql -e "grant all privileges on *.* to root@'%' identified by "root" with grant option;"

9、配置mysql环境变量


shell> vim /etc/profile shell> export PATH=/usr/local/mysql/bin:$PATH shell> source /etc/profile

其它注意事项


如果中途编译失败了,需要删除cmake生成的预编译配置参数的缓存文件和make编译后生成的文件,再重新编译。


shell> cd /opt/mysql-server shell> rm -f CMakeCache.txt shell> make clean







mysql5.7 二进制包安装

1. 下载包

wget http://mirrors.sohu.com/mysql/MySQL-5.7/mysql-5.7.12-linux-glibc2.5-x86_64.tar.gz


2. 解压

tar zxvf mysql-5.7.12-linux-glibc2.5-x86_64.tar.gz

mv mysql-5.7.12-linux-glibc2.5-x86_64 /usr/local/mysql



3. 初始化

useradd -M -s /sbin/nologin mysql

mkdir -p /data/mysql

chown mysql /data/mysql

cd /usr/local/mysql

./bin/mysqld  --initialize --user=mysql --datadir=/data/mysql

注意,这一步最后一行会有一个提示

[Note] A temporary password is generated for root@localhost: B*s1i(*,kXwg

最后面的字符串为root密码。

./bin/mysql_ssl_rsa_setup --datadir=/data/mysql



4. 拷贝配置文件和启动脚本

cp support-files/my-default.cnf /etc/my.cnf  

vim /etc/my.cnf //编辑或者修改

basedir = /usr/local/mysql

datadir = /data/mysql

port = 3306

socket = /tmp/mysql.sock


cp support-files/mysql.server /etc/init.d/mysqld   chmod 755 /etc/init.d/mysqld

vi /etc/init.d/mysqld   //编辑或者修改

basedir=/usr/local/mysql

datadir=/data/mysql

5. 启动服务

/etc/init.d/mysqld start


6. 设置root密码

使用初始化密码登录

/usr/local/mysql/bin/mysql -uroot -p'B*s1i(*,kXwg'  //进入后直接设置密码

mysql>set password = password('mypass');   //一定要设置一下新密码

退出来,再使用新的密码登录就可以了


还有一种情况,就是不知道初始化密码

vi /etc/my.cnf

在[mysqld]下面增加一行

skip-grant-tables

重启  /etc/init.d/mysqld restart


/usr/local/mysql/bin/mysql -uroot

mysql> update user set authentication_string=password('123333') where user='root';

退出来后,更改my.cnf,去掉刚加的 skip-grant-tables

重启 /etc/init.d/mysqld restart



1,添加mysql用户组


shell> groupadd mysql

2,创建mysql用户设置其用户组为mysql,因为此mysql用户只用作启动MySQL的所属用户关系目的,并不是用来登录的,所以后面加了-r 和 -s /bin/false


shell> useradd -r -g mysql -s /bin/false mysql

3,将压缩包解压至/user/local/目录下,并将目录重命名为mysql


shell> cd /usr/local

shell> tar -zxvf /root/mysql-5.7.13-linux-glibc2.5-x86_64.tar.gz

shell> mv mysql-5.7.13-linux-glibc2.5-x86_64.tar.gz mysql

4,进入mysql目录,创建mysql-files目录并修改其权限


shell> cd mysql

shell> mkdir mysql-files

shell> chmod 750 mysql-files

5,把当前目录下的所有文件的所属用户和所属用户组修改为mysql


shell> chown -R mysql .

shell> chgrp -R mysql .

6,初始化数据目录,此时会在/root/mysql/目录生成data文件,并且会为root用户生成临时密码打印在控制台屏幕上,此密码安装完成登录的时候要用到,记录下来


shell> bin/mysqld --initialize --user=mysql

7,设置加密


shell> bin/mysql_ssl_rsa_setup

8,将当前目录所有文件所属用户设置为root用户


shell> chown -R root .

9,将data mysql-files目录及其子目录、文件所属用户设置为mysql


shell> chown -R mysql data mysql-files

10,拷贝/usr/local/mysql/support-files/my-default.cnf 至/etc/目录下,并将其重命名为my.cnf


shell> cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf

11,修改其所属用户、所属用户组为mysql


shell> cd /etc/

shell> chown mysql my.cnf

shell> chgrp mysql my.cnf

12,编辑my.cnf 内容如下:


[mysqld]

basedir = /usr/local/mysql

datadir = /usr/local/mysql/data

port = 3306

character-set-server = utf8

collation-server = utf8_bin

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

basedir:MySQL安装目录

datadir:MySQL数据目录

port:端口

character-set-server:MySQL服务器字符集

collation-server:字符比较规则

sql_mode:SQL模式


13,启动MySQL


shell> cd /usr/local/msyql

shell> bin/mysqld_safe --user=mysql &

14,登录mysql,此时需要用到刚才初始化mysql的时候生成的临时密码。


shell> bin/mysql -u root -h localhost -p

15,初始化的时候生成的root的密码是过期的,需要修改密码


mysql> alter user 'root'@'localhost' identified by 'new_password';

16,退出使用新密码登录。



mysql5.7 yum安装


1 下载官方的yum源并安装

下面是RHEL6系列mysql5.7的下载地址:

wget http://repo.mysql.com//mysql57-community-release-el6-8.noarch.rpm

mysql 5.7的yum源,可以在官网直接找到


wKiom1guf4nhlkKsAADmVgSDTPo294.png-wh_50

2 启动mysql 5.7

service mysqld start

wKioL1guf5qRdjHcAAAVgqkNc1Y695.png-wh_50

spacer.gif

启动之前我没有给配置文件,因为是测试安装。并且启动过程时间很长,一直卡在

“Installing validate password plugin:”

3 查看root的随机密码。因为5.7增加了安全设置,所以初始时是有一个root的随机密码的,这个密码在mysql的错误日志中

spacer.gifwKiom1guf63RZhxqAABOqX0taqc700.png-wh_50

4更改临时密码,否则无法进行数据库操作。

可以用mysqladmin 工具修改

spacer.gifwKiom1guf77zB6cTAAAV2WdQs9w797.png-wh_50

5 用修改后密码登陆

wKioL1guf9CRqIO6AAAvHl8YOFM988.png-wh_50

安装mysql5.7

1、下载官方的yum源并导入

下载地址:http://dev.mysql.com/downloads/repo/yum/


2、导入yum源:


rpm -ivh mysql57-community-release-el6-8.noarch.rpm

清空yum缓存并重建


yum clean all && yum makecache


3、安装mysql


yum -y install mysql-community-server


注意:用这种官方的yum源安装时,下载速度很慢,所以安装起来比较话时间,建议是下载RPM包安装



安装mysql5.6


wget http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm


rpm -i mysql-community-release-el6-5.noarch.rpm



yum install mysql-community-server.x86_64


Service  mysqld  start

设置root的密码: 安装完成后默认密码为空


#mysqladmin -uroot -hlocalhost -p password '123456'


# mysql -V

mysql  Ver 14.14 Distrib 5.6.33, for Linux (x86_64) using  EditLine wrapper


mysql5.6 yum安装要比5.7 快很多




# 安装MySQL的yum源,下面是RHEL6系列mysql5.6的下载地址:

wget http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm

下面是RHEL6系列mysql5.7的下载地址:

wget http://repo.mysql.com//mysql57-community-release-el6-8.noarch.rpm


安装yum源。 

rpm -ivh mysql57-community-release-el6-8.noarch.rpm

清除缓存

yum clean all


下面几个命令可以顺便学习一下

# 安装yum-config-manager 

yum install yum-utils -y 

# 禁用MySQL5.6的源 

yum-config-manager --disable mysql56-community 

# 启用MySQL5.7的源 

yum-config-manager --enable mysql57-community-dmr 

# 用下面的命令查看是否配置正确

yum repolist enabled | grep mysql


 二、yum安装MySQL5.7

本次安装的版本是5.7.14,测试环境上原来有5.1.73版本,是升级安装.

yum install mysql

wKiom1efBNuzwwpzAACgaANvhHI537.png-wh_50

三、初始化并启动MySQL

service mysqld start

直接启动服务会报错,如下:

[root@localhost lib]# service mysqld start

MySQL Daemon failed to start.

正在启动 mysqld: [失败]

解决方法:新版本要求先初始化mysql。


初始化mysql


# mysqld --initialize --user=mysql --datadir=/var/lib/mysql

或者

# mysqld --initialize-insecure --user=mysql --datadir=/var/lib/mysql

另外,当你是以mysql的账户登录并执行程序的情况下,你可以将--user选项从命令中去掉。

通过官方文档我们可以知道,如果我是root身份登录Linux系 统,可以执行:mysqld --initialize --user=mysql或者mysqld --initialize-insecure --user=mysql。如果我是以mysql用户登录Linux系统,可以执行:mysqld --initialize或者mysqld --initialize-insecure。


不管在哪个平台上,使用--initialize选项就是以“默认安全模式”来进行安装的(即包含一个随机的root初始密码的生成)。在这种情况下,密 码是被标志为过期的,你需要选择一个新的密码。使用--initialize-insecure选项,没有root密码生成;如果是这样的话,在服务器投 入生产使用之前,你需要及时地为账户指定密码。


使用--initialize会为root账户生成一个随机的初始密码,我们可以使用命令:mysql -u root -p,然后输入密码来登录MySQL。使用--initialize-insecure不会为root账户生成一个随机的初始密码,我们可以使用命 令:mysql -u root --skip-password直接登录MySQL。


我初始化过程中遇到报错如下:

[ERROR] --initialize specified but the data directory has files in it. Aborting.

[ERROR] Aborting


解决方法:

rm  -rf  /var/lib/mysql/* 


原因分析:


mysqld服务会检查数据目录是否存在,如下:

如果数据目录不存在,mysqld则会创建它。

如果数据目录存在,且不是空目录(即包含有文件或子目录),mysqld会显示一条错误信息并中止:

[ERROR] --initialize specified but the data directory exists. Aborting.

遇到这种情况,就将数据目录删除或重命名后,重新再试一次。


总之: 初始化之前,先检查一下数据目录是否存在,执行命令:ls  -l  /var/lib|grep mysql。若有,则执行命令:

rm  -rf  /var/lib/mysql,将其删除;

或者执行命令:mv  /var/lib/mysql   /var/lib/newname,将其重命名为newname,就可以了。

再次执行初始化命令,成功执行.


[Note] A temporary password is generated for root@localhost: ihey0gFhTT;f

记住初始化生成的临时的root密码,登录时会用到


初始化完成之后,直接启动service mysqld start





四、连接MySQL并修改密码


初始化时会生成一个临时的root密码,且登录之后必须先改密码,然后才能执行命令.

mysql -uroot -p  临时密码

登录之后,如果不立即改密码,执行命令时报如下错误:

mysql> show databases ;

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.


修改密码:  set password=password('123@Zxc');

或者:alter user 'root'@'localhost'  identified  by  '123@Zxc';

再次执行成功.



从官方文档中我们了解到要用ALTER USER语句可以修改密码。登录MySQL后,执行语句:

alter user 'root'@'localhost'  identified  by  '123@Zxc';

就将root账户的密码修改为123@Zxc了。

MySQL对用户密码安全性有所加强,所以设置的密码必须包含有数字,大写字母,小写字母,特殊符号,如果你设置的密码过于简单,会提示:

ERROR 1819 (HY000): Your password does NOT satisfy the CURRENT policy requirements。










本文转自 chengxuyonghu 51CTO博客,原文链接:http://blog.51cto.com/6226001001/1904426,如需转载请自行联系原作者
相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
20天前
|
安全 关系型数据库 MySQL
PHP与MySQL交互:从入门到实践
【9月更文挑战第20天】在数字时代的浪潮中,掌握PHP与MySQL的互动成为了开发动态网站和应用程序的关键。本文将通过简明的语言和实例,引导你理解PHP如何与MySQL数据库进行对话,开启你的编程之旅。我们将从连接数据库开始,逐步深入到执行查询、处理结果,以及应对常见的挑战。无论你是初学者还是希望提升技能的开发者,这篇文章都将为你提供实用的知识和技巧。让我们一起探索PHP与MySQL交互的世界,解锁数据的力量!
|
1月前
|
NoSQL 关系型数据库 MySQL
不是 PHP 不行了,而是 MySQL 数据库扛不住啊
【9月更文挑战第8天】这段内容讨论了MySQL在某些场景下面临的挑战及其原因,并指出这些问题不能完全归咎于MySQL本身。高并发读写压力、数据量增长以及复杂查询和事务处理都可能导致性能瓶颈。然而,应用程序设计不合理、系统架构不佳以及其他数据库选择和优化策略不足也是重要因素。综合考虑这些方面才能有效解决性能问题,而MySQL通过不断改进和优化,仍然是许多应用场景中的可靠选择。
|
2月前
|
存储 SQL 关系型数据库
PHP与MySQL交互的奥秘
【8月更文挑战第29天】在编程的世界里,PHP和MySQL就像是一对默契的舞伴,共同演绎着数据的交响曲。本文将带你探索它们之间的互动,从连接数据库到执行查询,再到处理结果,每一步都充满了节奏与和谐。我们将一起走进这段代码的旅程,感受数据流动的魅力。
|
5天前
|
tengine 关系型数据库 MySQL
Tengine、Nginx安装MySQL数据库命令教程
本指南详细介绍了在Linux系统上安装与配置MySQL数据库的步骤。首先通过下载并安装MySQL社区版本,接着启动MySQL服务,使用`systemctl start mysqld.service`命令。若启动失败,可尝试使用`sudo /etc/init.d/mysqld start`。利用`systemctl status mysqld.service`检查MySQL的服务状态,确保其处于运行中。通过日志文件获取初始密码,使用该密码登录数据库,并按要求更改初始密码以增强安全性。随后创建一个名为`tengine`的数据库,最后验证数据库创建是否成功以及完成整个设置流程。
|
5天前
|
tengine 应用服务中间件 Linux
Tengine、Nginx安装PHP命令教程
要在阿里云Linux上安装PHP,请先更新YUM源并启用PHP 8.0仓库,然后安装PHP及相关扩展。通过`php -v`命令验证安装成功后,需修改Nginx配置文件以支持PHP,并重启服务。最后,创建`phpinfo.php`文件测试安装是否成功。对于CentOS系统,还需安装EPEL源和Remi仓库,其余步骤类似。完成上述操作后,可通过浏览器访问`http://IP地址/phpinfo.php`测试安装结果。
|
2天前
|
前端开发 JavaScript 应用服务中间件
linux安装nginx和前端部署vue项目(实际测试react项目也可以)
本文是一篇详细的教程,介绍了如何在Linux系统上安装和配置nginx,以及如何将打包好的前端项目(如Vue或React)上传和部署到服务器上,包括了常见的错误处理方法。
12 0
linux安装nginx和前端部署vue项目(实际测试react项目也可以)
|
1月前
|
NoSQL 关系型数据库 Redis
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
mall在linux环境下的部署(基于Docker容器),docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongodb、minio详细教程,拉取镜像、运行容器
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
|
2月前
|
缓存 应用服务中间件 nginx
安装nginx-http-flv-module模块
本文介绍如何为Nginx安装`nginx-http-flv-module`模块。此模块基于`nginx-rtmp-module`二次开发,不仅具备原模块的所有功能,还支持HTTP-FLV播放、GOP缓存、虚拟主机等功能。安装步骤包括:确认Nginx版本、下载相应版本的Nginx与模块源码、重新编译Nginx并加入新模块、验证模块安装成功。特别注意,此模块已包含`nginx-rtmp-module`功能,无需重复编译安装。
103 1
|
2月前
|
SQL 关系型数据库 MySQL
PHP与MySQL交互之基础教程
【8月更文挑战第31天】 在数字世界中,数据是推动一切的核心力量。本文将引导你探索PHP与MySQL的协同工作,通过实际代码示例,展示如何建立连接、执行查询以及处理结果集。无论你是初学者还是希望巩固知识的开发者,这篇文章都将为你提供宝贵的实践知识。
|
应用服务中间件 nginx
nginx安装报错/configure: error: the HTTP gzip module requires the zlib library.
反向代理服务器的工作原理 反向代理服务器通常有两种模型,它可以作为内容服务器的替身,也可以作为内容服务器集群的负载均衡器。 1,作内容服务器的替身 如果您的内容服务器具有必须保持安全的敏感信息,如信用卡号数据库,可在防火墙外部设置一个代理服务器作为内容服务器的替身。
3853 0