2.mysql5.5数据库编译方式安装

  官方网站:https://www.mysql.com/

  

1.安装方式
(1)yum/rpm方式安装mysql
[root@crmn ~]# yum install mysql-server
特点:方式简单,适合于对数据库要求不太高,例如:并发不大,公司内部,企业内部的一些用用场景。
大的门户网站把源码根据企业的需求制作成rpm,搭建yum仓库,yum install -y xxx

案例:rpm包制作介绍及实战操作讲解
http://blog.51cto.com/oldboy/1121725

(2)常规方式编译安装mysql
5.0~5.1系列:
[root@crmn ~]# ./configure
[root@crmn ~]# make;make install

5.5~5.6系列:
由于5.5~5.6系列产品系列特殊性,故编译方式和早期产品安装方式不一样,采用cmake或gmake方式编译安装。
[root@crmn ~]# ./configure
[root@crmn ~]# gmake;gmake install

(3)采用二进制方式免编译安装mysql
适合于各类mysql产品系列,不需要复杂的编译设置及编译时间等待,直接解压下载的软件包,初始化即可完成mysql的安装启动。

---------------------
2.选择正确的mysql安装方式:
若是mysql5.5及以上的版本,安装方式机器数量少的话推荐使用cmake编译方式,这是多数运维的选择;数量多的话就用二进制免安装,这是某些DBA的偏爱。
普通linux运维多采用编译的方式进行安装:
(1)安装辅助工具及依赖包
[root@crmn opt]# tar -xvf cmake-2.8.8.tar.gz //cmake
[root@crmn opt]# cd cmake-2.8.8
[root@crmn cmake-2.8.8]# ./configure
[root@crmn cmake-2.8.8]# gmake
[root@crmn cmake-2.8.8]# gmake install
[root@oldboyedu-01 cmake-2.8.8]# echo $?
0
添加依赖包:
[root@crmn opt]# yum install ncurses-devel -y

(2)创建mysql虚拟用户和组
[root@crmn ~]# groupadd mysql
[root@crmn ~]# useradd mysql -s /sbin/nologin -M -g mysql

(3)解压编译mysql
[root@crmn opt]# tar -xvf mysql-5.5.32.tar.gz
[root@crmn mysql-5.5.32]# ls
BUILD README dbug mysql-test sql-bench vio
BUILD-CMAKE VERSION extra mysys sql-common win
CMakeLists.txt client include packaging storage zlib
COPYING cmake libmysql plugin strings
Docs cmd-line-utils libmysqld regex support-files
INSTALL-SOURCE config.h.cmake libservices scripts tests
INSTALL-WIN-SOURCE configure.cmake man sql unittest

[root@crmn mysql-5.5.32]# cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.5.32 \
-DMYSQL_DATADIR=/application/mysql-5.5.32/data \
-DMYSQL_UNIX_ADDR=/application/mysql-5.5.32/tmp/mysql.sock \
-DEXTRA_CHARSETS=gbk,gb2312,utf8,ascii \
-DENABLED_LOCAL_INFILE=ON \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
-DWITHOUT_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

说明:
-DCMAKE_INSTALL_PREFIX=/application/mysql-5.5.32 \ //mysql安装路径
-DMYSQL_DATADIR=/application/mysql-5.5.32/data \ //数据文件路径
-DMYSQL_UNIX_ADDR=/application/mysql-5.5.32/tmp/mysql.sock \ //socket路径
-DDEFAULT_CHARSET=utf8 \ //默认的字符集;安装时缺省
-DDEFAULT_COLLATION=utf8_general_ci \ //默认的校对规则;安装时缺省
-DEXTRA_CHARSETS=gbk,gb2312,utf8,ascii \//支持的额外的字符集
-DENABLED_LOCAL_INFILE=ON \ //打开LOCAL_INFILE功能
-DWITH_INNOBASE_STORAGE_ENGINE=1 \ //支持以下下列引擎
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
-DWITHOUT_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
[root@crmn mysql-5.5.32]# echo $?
0
[root@crmn mysql-5.5.32]# make ;make install

(4)建立软链接
[root@crmn mysql-5.5.32]# ln -s /application/mysql-5.5.32/ /application/mysql
[root@crmn mysql-5.5.32]# which mysql
/usr/bin/mysql

(5)查看默认模板配置文件并选择配置文件(测试环境)
[root@crmn mysql-5.5.32]# ll support-files/my*cnf
-rw-r--r--. 1 root root 4759 12月 12 15:00 support-files/my-huge.cnf
-rw-r--r--. 1 root root 19809 12月 12 15:00 support-files/my-innodb-heavy-4G.cnf
-rw-r--r--. 1 root root 4733 12月 12 15:00 support-files/my-large.cnf
-rw-r--r--. 1 root root 4744 12月 12 15:00 support-files/my-medium.cnf
-rw-r--r--. 1 root root 2908 12月 12 15:00 support-files/my-small.cnf

[root@crmn mysql-5.5.32]# cp support-files/my-small.cnf /etc/my.cnf
cp: overwrite `/etc/my.cnf'? y
说明:测试环境可以选小的,生产环境可以根据硬件选择,例如:my-innodb-heavy-4G.cnf

(6)配置环境变量
[root@crmn mysql-5.5.32]# echo 'export PATH=/application/mysql/bin:$PATH' >>/etc/profile
[root@crmn mysql-5.5.32]# tail -1 /etc/profile
export PATH=/application/mysql/bin:$PATH
[root@crmn mysql-5.5.32]# source /etc/profile
[root@crmn mysql-5.5.32]# echo $PATH
/application/mysql/bin:/usr/lib/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

案例:http://blog.51cto.com/oldboy/1122867
故障问题!mysqldump: Got error: 1556: You can't use locks with log tables.
[root@oldboyedu-01 mysql-5.5.32]# which mysqldump
/application/mysql/bin/mysqldump

  

(7)初始化数据文件
存在建立的mysql数据库文件目录:
[root@crmn ~]# ll /application/mysql/data/
总用量 4
drwxr-xr-x. 2 root root 4096 12月 12 15:12 test
授权mysql用户访问mysql的安装目录:
[root@crmn ~]# chown -R mysql.mysql /application/mysql/data/
[root@crmn ~]# chmod -R 1777 /tmp/ //1是粘贴位
初始化数据文件:
[root@crmn scripts]# ./mysql_install_db --basedir=/application/mysql/ --datadir=/application/mysql/data/ --user=mysql
Installing MySQL system tables...
OK
Filling help tables...
OK
[root@crmn scripts]# ping crmn
PING crmn.localdomain (211.98.71.195) 56(84) bytes of data.
64 bytes from 211.98.71.195: icmp_seq=1 ttl=128 time=41.1 ms
64 bytes from 211.98.71.195: icmp_seq=2 ttl=128 time=40.2 ms
[root@crmn scripts]# mysql
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/application/mysql-5.5.32/tmp/mysql.sock' (2)

(8)设置常规方式启动关闭脚本
[root@crmn mysql-5.5.32]# cp support-files/mysql.server /etc/init.d/mysqld //拷贝mysql启动脚本到/etc/init.d下
[root@crmn mysql-5.5.32]# chmod +x /etc/init.d/mysqld //脚本可执行
[root@crmn mysql-5.5.32]# /etc/init.d/mysqld start //成功
Starting MySQL... [确定]
[root@crmn mysql-5.5.32]# netstat -lntup|grep 3306 //查看服务是否开启:netstat -lntup|grep mysql
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 18527/mysqld

(9)登录
[root@oldboyedu-01 mysql-5.5.32]# mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.5.32 Source distribution

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> select user,host from mysql.user;
+------+--------------+
| user | host |
+------+--------------+
| root | 127.0.0.1 |
| root | ::1 |
| | localhost |
| root | localhost |
| | oldboyedu-01 |
| root | oldboyedu-01 |
+------+--------------+
6 rows in set (0.00 sec)

mysql> delete from mysql.user where user='';//基本优化!
Query OK, 2 rows affected (0.00 sec)

mysql> select user,host from mysql.user;
+------+--------------+
| user | host |
+------+--------------+
| root | 127.0.0.1 |
| root | ::1 |
| root | localhost |
| root | oldboyedu-01 |
+------+--------------+
4 rows in set (0.00 sec)

mysql>
mysql> delete from mysql.user where host='oldboyedu-01';
Query OK, 1 row affected (0.00 sec)

mysql> select user,host from mysql.user;
+------+-----------+
| user | host |
+------+-----------+
| root | 127.0.0.1 |
| root | ::1 |
| root | localhost |
+------+-----------+
3 rows in set (0.00 sec)

mysql> delete from mysql.user where host='::1';
Query OK, 1 row affected (0.00 sec)

mysql> select user,host from mysql.user;
+------+-----------+
| user | host |
+------+-----------+
| root | 127.0.0.1 |
| root | localhost |
+------+-----------+
2 rows in set (0.00 sec)

mysql>

mysql> drop database test;
Query OK, 0 rows affected (0.00 sec)

mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
+--------------------+
3 rows in set (0.00 sec)
mysql> quit
Bye

设置密码登录:
[root@oldboyedu-01 ~]# /application/mysql//bin/mysqladmin -u root password 'new-password'
[root@oldboyedu-01 ~]# mysql -uroot -pnew-password
......
mysql>
[root@oldboyedu-01 ~]# chkconfig mysqld on //设置开始自启动
[root@oldboyedu-01 ~]# chkconfig --list|grep mysqld
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off

=======================================
MySQL数据库多种安装方法及企业级安装实践详解
http://blog.51cto.com/oldboy/1917295

posted @ 2017-12-12 16:54  bkycrmn  阅读(145)  评论(0)    收藏  举报