1、安裝nginxphp
一、安裝 pcrehtml
爲了支持 rewrite 功能,咱們須要安裝 pcrenode
# yum install pcre* //如過你已經裝了,請跳過這一步 mysql
安裝 openssllinux
須要 ssl 的支持,若是不須要 ssl 支持,請跳過這一步nginx
# yum install openssl* c++
二、安裝nginxweb
獲取最新版nginxsql
#:cd /usr/local/src shell
#: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
三、啓動nginx
# /usr/local/src/nginx/sbin/nginx 啓動nginx
2、安裝php7.0.12
一、安裝依賴包
確保安裝以前有安裝 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來安裝,簡單方便,壞處是第三方源多少有中不可靠的感受。
#解決辦法一
#一、安裝第三方yum源
cd /temp/
wget http://www.atomicorp.com/installers/atomic
sh ./atomic
#二、使用yum命令安裝
yum install php-mcrypt libmcrypt libmcrypt-devel
#解決辦法2、
#使用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
# 找到以下兩行
添加www 這個用戶和用戶組
# groupadd www
# useradd -g www -d /home/www
啓動php-fpm
# /usr/local/php/sbin/php-fpm
查看是否啓動成功
# netstat -ano | grep '9000'
修改nginx.conf 打開如下注釋
並在此文件中指定網站根目錄 root。並在index 加上index.php
# /usr/local/src/nginx/sbin/nginx -s reload 從新加載
# /usr/local/src/nginx/sbin/nginx -s stop 中止服務
# vim ~/.bash_profile
# source ~/.bash_profil
3、編譯安裝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
啓動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數據存放目錄
啓動mysql
# service mysqld start
啓動nginx
# nginx -s reload
源碼安裝mysql5.7
一、解決依賴包並下載源碼包至/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
二、新建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
三、預編譯及編譯安裝
[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 #編譯安裝
四、設置啓動腳本,開機自啓動
[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
五、拷貝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)
六、配置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))
七、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
五、設置配置文件
shell> cp support-files/my-default.cnf /etc/my.cnf
六、配置mysql服務
shell> cp support-files/mysql.server /etc/init.d/mysqld shell> chkconfig --add mysqld # 添加到系統服務 shell> chkconfig mysqld on # 開機啓動
七、啓動服務
shell> service mysqld start # 啓動mysql服務 shell> service mysqld stop # 中止mysql服務 shell> service mysqld restart # 從新啓動mysql服務
八、設置數據庫密碼
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;"
九、配置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源,能夠在官網直接找到
2 啓動mysql 5.7
service mysqld start
啓動以前我沒有給配置文件,由於是測試安裝。而且啓動過程時間很長,一直卡在
「Installing validate password plugin:」
3 查看root的隨機密碼。由於5.7增長了安全設置,因此初始時是有一個root的隨機密碼的,這個密碼在mysql的錯誤日誌中
4更改臨時密碼,不然沒法進行數據庫操做。
能夠用mysqladmin 工具修改
5 用修改後密碼登錄
安裝mysql5.7
一、下載官方的yum源並導入
下載地址:http://dev.mysql.com/downloads/repo/yum/
二、導入yum源:
rpm -ivh mysql57-community-release-el6-8.noarch.rpm
清空yum緩存並重建
yum clean all && yum makecache
三、安裝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
2、yum安裝MySQL5.7
本次安裝的版本是5.7.14,測試環境上原來有5.1.73版本,是升級安裝.
yum install mysql
3、初始化並啓動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
4、鏈接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。