在linux 中安装现配置mysql
2009-06-04 18:01
633 查看
用 MySQL 有年头了,写篇简单的文档来记录下自己的常用安装和配置过程。本文旨在介绍如何在 Linux 系统上安装 MySQL 数据库服务器,以及基本配置。本文仅仅提供一份快速指南,请访问 MySQL 官方网站获取详细安装、配置指南。
OS: Red Hat Enterprise Linux AS 3.0
MySQL: 5.0.22
源码 tarball 放置在 /home/huangys , 安装目的地是/usr/loacl/mysql
1. 准备
创建一个用户来运行 MySQL 守护进程。
# groupadd mysqlg
# useradd –g mysqlg –M –s /sbin/nologin mysqld
解包
# cd /home/huangys
# tar zxvf mysql-5.0.22.tar.gz
2. 配置编译选项
# cd mysql-5.0.22
# ./configure --prefix=/usr/loacl/mysql localstatedir=/usr/local/mysql/data --with-extra-charsets=all --with-charset=utf8 --with-tcp-port=3306 --with-unix-socket-path=/tmp/mysql.sock --with-mysqld-user=mysqld --with-federated-storage-engine
选项说明:
--prefix=/usr/loacl/mysql 将MySQL安装到目录/usr/loacl/mysql下
localstatedir=/usr/local/mysql/data 指定数据存放目录以替换var目录
--with-charset=utf8 指定缺省字符集为utf8
--with-extra-charsets=all 将MySQL所有支持的字符集编译进来
--with-tcp-port=3306 指定此MySQL实例将监听TCP 3306端口
--with-federated-storage-engine 支持federated存储引擎
通过指令 configure --help 可以查看全部选项信息。
----prefix 必须指定
--with-unix-socket-path 最好指定自己的路径
3. 编译、安装
# make
# make install
在 MySQL 提供的支持文件中复制一个合适的配置档到 MySQL 数据目录中,并命名为 my.cnf
# cp support-files/my-medium.cnf /etc/my.cnf
4. 初始化
cd /usr/local/mysql
# bin/mysql_install_db –user=mysql
这将会在安装目录 /usr/loacl/mysql 下创建 MySQL 的数据目录 data (var)
5. 配置
1.cd /usr/loca/mysql
chown -R root . #设定root能访问/usr/local/mysql
chown -R mysql var #设定mysql用户能访问/usr/local/mysql/var ,里面存的是mysql的数据库文件
chown -R mysql var/. #设定mysql用户能访问/usr/local/mysql/var下的所有文件
chown -R mysql var/mysql/. #设定mysql用户能访问/usr/local/mysql/var/mysql下的所有文件
chgrp -R mysql . #设定mysql组能够访问/usr/local/mysql
主要修改点在 [mysqld] 配置块中:
指定允许的最大包尺寸:
max_allowed_packet = 2M
指定最大连接数(默认为100):
max_connections = 1000
query_cache_limit = 2M
tmp_table_size = 1024M
thread_cache = 20
thread_concurrency = 8
log-bin = mysql-bin ##(设置二进制日志的名字,并将其放置在/usr/local/mysql/data下)
log_slow_queries = slow_query.log ##(设置慢查询日志并命名为:slow_query.log 放在/usr/local/mysql/data下)
long_query_time = 1 ##(设置慢查询日志的时间为1秒)
server-id = 1
relay-log = data01-relay-bin
指定服务器端字符集:
character_set_server = utf8
在[mysql]中设置
Default-character-set=rtf8 ##可以处理中文字符!
忽略Berkeley DB:
skip-bdb
(同理,若也打算忽略 InnoDB,则使用 skip-innodb)
配置InnoDB:
innodb_data_home_dir = /usr/loacl/mysql2/var/
innodb_data_file_path = ibdata1:500M;ibdata2:50M:autoextend
innodb_log_group_home_dir = /usr/loacl/mysql2/var/
innodb_log_arch_dir = /usr/loacl/mysql2/var/
innodb_buffer_pool_size = 384M
innodb_additional_mem_pool_size = 20M
innodb_log_file_size = 100M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
完成编辑此配置档后,记得顺便修改一下 MySQL 数据目录的 ownership:
# cd /usr/loacl/mysql
Chown –R root .
# chown –R mysqld.mysqlg data
Chgrp –R mysql .
6. 控制脚本
MySQL提供了一个脚本文件,可以用来方便地控制MySQL守护进程。
# cp support-files/mysql.server /usr/loacl/mysql/bin/mysqlctl
# cd /usr/loacl/mysql/bin
# chmod 755 mysqlctl
启动:
# /usr/loacl/mysql/bin/mysqlctl start
停止:
# /usr/loacl/mysql/bin/mysql stop
注意,若启用了 InnoDB 存储引擎,那么第一次启动 MySQL 服务器时,速度会比较慢,因为需要分配在配置档中定义的空间、生成相应的数据文件、日志文件等。
7. Security
安全问题在哪里都是很重要的,特别是对于初安装的新系统而言,尤其如此。
MySQL 往往携带有四个缺省用户,分别是 'root'@'localhost', 'root'@'%', ''@'localhost', ''@'%'.
除了第一个本地root,其他三个(任意来源的root,以及两个匿名用户)都应该删除:
mysql> use mysql
mysql> delete from user where user='';
mysql> delete from user where user='root' and host='%';
这唯一保留的用户 root@localhost 的密码默认为空,当然不好。为它加上密码:
# /usr/loacl/mysql/bin/mysqladmin -uroot -hlocalhost -P3306 -p password my_pass
指令中的 my_pass 就是设定的密码,注意,不要用单引号把它括起来。
8. Appendix
[root@tbox2 root]# cat /etc/redhat-release
Red Hat Enterprise Linux AS release 3 (Taroon)
[root@tbox2 root]# uname -a
Linux tbox2.test.net 2.4.21-4.ELsmp #1 SMP Fri Oct 3 17:52:56 EDT 2003 i686 i686 i386 GNU/Linux
[root@tbox2 root]# rpm -qa | grep gcc
libgcc-ssa-3.5ssa-0.20030801.41
gcc-g77-3.2.3-20
gcc-ssa-3.5ssa-0.20030801.41
gcc-objc-ssa-3.5ssa-0.20030801.41
compat-gcc-c++-7.3-2.96.122
compat-gcc-7.3-2.96.122
gcc-c++-3.2.3-20
gcc-gnat-3.2.3-20
gcc-objc-3.2.3-20
gcc-c++-ssa-3.5ssa-0.20030801.41
gcc-java-ssa-3.5ssa-0.20030801.41
libgcc-3.2.3-20
gcc-3.2.3-20
gcc-java-3.2.3-20
gcc-g77-ssa-3.5ssa-0.20030801.41
[root@tbox2 root]# rpm -qa | grep glibc
glibc-headers-2.3.2-95.3
glibc-common-2.3.2-95.3
glibc-utils-2.3.2-95.3
glibc-kernheaders-2.4-8.34
glibc-devel-2.3.2-95.3
compat-glibc-7.x-2.2.4.32.5
glibc-2.3.2-95.3
glibc-profile-2.3.2-95.3
[root@tbox2 root]# /usr/loacl/mysql/bin/mysql --version
/usr/loacl/mysql/bin/mysql Ver 14.12 Distrib 5.0.22, for pc-linux-gnu (i686) using EditLine wrapper
END.
./configure --prefix=/home/jack/mysql/ --with-unix-socket-path=/home/jack/mysql/mysql.sock
make
make install
cp /usr/local/share/mysql/my-large.cnf /home/jack/mysql/my.cnf
cd /home/jack/mysql
bin/mysql_install_db
bin/mysqld_safe &
**********************************************************************
**********************************************************************
**********************************************************************
手工安装mysql
1.改路径参数mysqld_safe
mysqld_multi
mysqlacc test2.igobb.comess
mysql_upgrade_shell
mysql_install_db
mysqlbug
mysql_fix_privilege_tables
mysql_config (还要改mysql.sock)
msql2mysql
mysql_fix_privilege_tables
mysql_install_db
mysqld_safe
把这些文件里的路径,例如 :"/export/nfs10/builder/aimc3rd/mysql5/" 改为实际的路径
使用命令:
:%s///export//nfs10//builder//aimc3rd//mysql5///usr/loacl//aimm//aimm//mysql5
2.复制~/mysql5/share/mysql/my-medium.cnf ~/mysql5/.my.cnf
然后修改参数
[client]
#password = your_password
port = 3336
socket = /usr/loacl/aimm/aimm/mysql5/mysql.sock
default-character-set = utf8
3.初始化数据库,执行脚本mysql_install_db
4.启动数据库
./bin/mysqld_safe --defaults-file=./.my.cnf
5.连接数据库,新建用户aimm/aimm
/mysql -h127.0.0.1 -P3336 -uroot -p
grant all on *.* to aimm@"%" identified by "aimm"
---改密码:mysql> update user set Password=Password('aimc1234') where User='aiuum';
---mysql> FLUSH PRIVILEGES;
安装Mysql-5.0.67
tar vxzf mysql-5.0.67.tar.gz
cd mysql-5.0.67
./configure --prefix=/usr/local/mysql --sysconfdir=/etc //参数指定软件安装位置与配置文件位置
make
make install //安装完成
cp support-files/my-medium.cnf /etc/my.cnf //copy一个缺省的配置文件
useradd mysql //创建mysql用户
/usr/local/mysql/bin/mysql_install_db --user=mysql //初始化数据库
cd /usr/local/mysql
chown -R root
chown -R mysql var
chgrp -R mysql .
/usr/local/mysql/bin/mysqld_safe & //启动mysql
/usr/local/mysql/bin/mysqladmin –u root –h localhost.localdomain password ‘password’
/usr/local/mysql/bin/mysqladmin –u root password ‘password’
//设置root的密码
/usr/local/mysql/bin/mysql –u root –p
show databases; //查询数据库列表
use mysql //指定当前数据库为mysql
cp support-files/mysql.server /etc/rc.d/init.d/mysqld
chkconfig mysqld on
chkconfig –list mysqld
service mysqld restart
//copy一个启动脚本,做开机启动
数据导出工具:mysqldump -h -u -p --opt database >; database.sql
数据导入工具:mysql -u username -p < database.sql
OS: Red Hat Enterprise Linux AS 3.0
MySQL: 5.0.22
源码 tarball 放置在 /home/huangys , 安装目的地是/usr/loacl/mysql
1. 准备
创建一个用户来运行 MySQL 守护进程。
# groupadd mysqlg
# useradd –g mysqlg –M –s /sbin/nologin mysqld
解包
# cd /home/huangys
# tar zxvf mysql-5.0.22.tar.gz
2. 配置编译选项
# cd mysql-5.0.22
# ./configure --prefix=/usr/loacl/mysql localstatedir=/usr/local/mysql/data --with-extra-charsets=all --with-charset=utf8 --with-tcp-port=3306 --with-unix-socket-path=/tmp/mysql.sock --with-mysqld-user=mysqld --with-federated-storage-engine
选项说明:
--prefix=/usr/loacl/mysql 将MySQL安装到目录/usr/loacl/mysql下
localstatedir=/usr/local/mysql/data 指定数据存放目录以替换var目录
--with-charset=utf8 指定缺省字符集为utf8
--with-extra-charsets=all 将MySQL所有支持的字符集编译进来
--with-tcp-port=3306 指定此MySQL实例将监听TCP 3306端口
--with-federated-storage-engine 支持federated存储引擎
通过指令 configure --help 可以查看全部选项信息。
----prefix 必须指定
--with-unix-socket-path 最好指定自己的路径
3. 编译、安装
# make
# make install
在 MySQL 提供的支持文件中复制一个合适的配置档到 MySQL 数据目录中,并命名为 my.cnf
# cp support-files/my-medium.cnf /etc/my.cnf
4. 初始化
cd /usr/local/mysql
# bin/mysql_install_db –user=mysql
这将会在安装目录 /usr/loacl/mysql 下创建 MySQL 的数据目录 data (var)
5. 配置
1.cd /usr/loca/mysql
chown -R root . #设定root能访问/usr/local/mysql
chown -R mysql var #设定mysql用户能访问/usr/local/mysql/var ,里面存的是mysql的数据库文件
chown -R mysql var/. #设定mysql用户能访问/usr/local/mysql/var下的所有文件
chown -R mysql var/mysql/. #设定mysql用户能访问/usr/local/mysql/var/mysql下的所有文件
chgrp -R mysql . #设定mysql组能够访问/usr/local/mysql
主要修改点在 [mysqld] 配置块中:
指定允许的最大包尺寸:
max_allowed_packet = 2M
指定最大连接数(默认为100):
max_connections = 1000
query_cache_limit = 2M
tmp_table_size = 1024M
thread_cache = 20
thread_concurrency = 8
log-bin = mysql-bin ##(设置二进制日志的名字,并将其放置在/usr/local/mysql/data下)
log_slow_queries = slow_query.log ##(设置慢查询日志并命名为:slow_query.log 放在/usr/local/mysql/data下)
long_query_time = 1 ##(设置慢查询日志的时间为1秒)
server-id = 1
relay-log = data01-relay-bin
指定服务器端字符集:
character_set_server = utf8
在[mysql]中设置
Default-character-set=rtf8 ##可以处理中文字符!
忽略Berkeley DB:
skip-bdb
(同理,若也打算忽略 InnoDB,则使用 skip-innodb)
配置InnoDB:
innodb_data_home_dir = /usr/loacl/mysql2/var/
innodb_data_file_path = ibdata1:500M;ibdata2:50M:autoextend
innodb_log_group_home_dir = /usr/loacl/mysql2/var/
innodb_log_arch_dir = /usr/loacl/mysql2/var/
innodb_buffer_pool_size = 384M
innodb_additional_mem_pool_size = 20M
innodb_log_file_size = 100M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
完成编辑此配置档后,记得顺便修改一下 MySQL 数据目录的 ownership:
# cd /usr/loacl/mysql
Chown –R root .
# chown –R mysqld.mysqlg data
Chgrp –R mysql .
6. 控制脚本
MySQL提供了一个脚本文件,可以用来方便地控制MySQL守护进程。
# cp support-files/mysql.server /usr/loacl/mysql/bin/mysqlctl
# cd /usr/loacl/mysql/bin
# chmod 755 mysqlctl
启动:
# /usr/loacl/mysql/bin/mysqlctl start
停止:
# /usr/loacl/mysql/bin/mysql stop
注意,若启用了 InnoDB 存储引擎,那么第一次启动 MySQL 服务器时,速度会比较慢,因为需要分配在配置档中定义的空间、生成相应的数据文件、日志文件等。
7. Security
安全问题在哪里都是很重要的,特别是对于初安装的新系统而言,尤其如此。
MySQL 往往携带有四个缺省用户,分别是 'root'@'localhost', 'root'@'%', ''@'localhost', ''@'%'.
除了第一个本地root,其他三个(任意来源的root,以及两个匿名用户)都应该删除:
mysql> use mysql
mysql> delete from user where user='';
mysql> delete from user where user='root' and host='%';
这唯一保留的用户 root@localhost 的密码默认为空,当然不好。为它加上密码:
# /usr/loacl/mysql/bin/mysqladmin -uroot -hlocalhost -P3306 -p password my_pass
指令中的 my_pass 就是设定的密码,注意,不要用单引号把它括起来。
8. Appendix
[root@tbox2 root]# cat /etc/redhat-release
Red Hat Enterprise Linux AS release 3 (Taroon)
[root@tbox2 root]# uname -a
Linux tbox2.test.net 2.4.21-4.ELsmp #1 SMP Fri Oct 3 17:52:56 EDT 2003 i686 i686 i386 GNU/Linux
[root@tbox2 root]# rpm -qa | grep gcc
libgcc-ssa-3.5ssa-0.20030801.41
gcc-g77-3.2.3-20
gcc-ssa-3.5ssa-0.20030801.41
gcc-objc-ssa-3.5ssa-0.20030801.41
compat-gcc-c++-7.3-2.96.122
compat-gcc-7.3-2.96.122
gcc-c++-3.2.3-20
gcc-gnat-3.2.3-20
gcc-objc-3.2.3-20
gcc-c++-ssa-3.5ssa-0.20030801.41
gcc-java-ssa-3.5ssa-0.20030801.41
libgcc-3.2.3-20
gcc-3.2.3-20
gcc-java-3.2.3-20
gcc-g77-ssa-3.5ssa-0.20030801.41
[root@tbox2 root]# rpm -qa | grep glibc
glibc-headers-2.3.2-95.3
glibc-common-2.3.2-95.3
glibc-utils-2.3.2-95.3
glibc-kernheaders-2.4-8.34
glibc-devel-2.3.2-95.3
compat-glibc-7.x-2.2.4.32.5
glibc-2.3.2-95.3
glibc-profile-2.3.2-95.3
[root@tbox2 root]# /usr/loacl/mysql/bin/mysql --version
/usr/loacl/mysql/bin/mysql Ver 14.12 Distrib 5.0.22, for pc-linux-gnu (i686) using EditLine wrapper
END.
./configure --prefix=/home/jack/mysql/ --with-unix-socket-path=/home/jack/mysql/mysql.sock
make
make install
cp /usr/local/share/mysql/my-large.cnf /home/jack/mysql/my.cnf
cd /home/jack/mysql
bin/mysql_install_db
bin/mysqld_safe &
**********************************************************************
**********************************************************************
**********************************************************************
手工安装mysql
1.改路径参数mysqld_safe
mysqld_multi
mysqlacc test2.igobb.comess
mysql_upgrade_shell
mysql_install_db
mysqlbug
mysql_fix_privilege_tables
mysql_config (还要改mysql.sock)
msql2mysql
mysql_fix_privilege_tables
mysql_install_db
mysqld_safe
把这些文件里的路径,例如 :"/export/nfs10/builder/aimc3rd/mysql5/" 改为实际的路径
使用命令:
:%s///export//nfs10//builder//aimc3rd//mysql5///usr/loacl//aimm//aimm//mysql5
2.复制~/mysql5/share/mysql/my-medium.cnf ~/mysql5/.my.cnf
然后修改参数
[client]
#password = your_password
port = 3336
socket = /usr/loacl/aimm/aimm/mysql5/mysql.sock
default-character-set = utf8
3.初始化数据库,执行脚本mysql_install_db
4.启动数据库
./bin/mysqld_safe --defaults-file=./.my.cnf
5.连接数据库,新建用户aimm/aimm
/mysql -h127.0.0.1 -P3336 -uroot -p
grant all on *.* to aimm@"%" identified by "aimm"
---改密码:mysql> update user set Password=Password('aimc1234') where User='aiuum';
---mysql> FLUSH PRIVILEGES;
安装Mysql-5.0.67
tar vxzf mysql-5.0.67.tar.gz
cd mysql-5.0.67
./configure --prefix=/usr/local/mysql --sysconfdir=/etc //参数指定软件安装位置与配置文件位置
make
make install //安装完成
cp support-files/my-medium.cnf /etc/my.cnf //copy一个缺省的配置文件
useradd mysql //创建mysql用户
/usr/local/mysql/bin/mysql_install_db --user=mysql //初始化数据库
cd /usr/local/mysql
chown -R root
chown -R mysql var
chgrp -R mysql .
/usr/local/mysql/bin/mysqld_safe & //启动mysql
/usr/local/mysql/bin/mysqladmin –u root –h localhost.localdomain password ‘password’
/usr/local/mysql/bin/mysqladmin –u root password ‘password’
//设置root的密码
/usr/local/mysql/bin/mysql –u root –p
show databases; //查询数据库列表
use mysql //指定当前数据库为mysql
cp support-files/mysql.server /etc/rc.d/init.d/mysqld
chkconfig mysqld on
chkconfig –list mysqld
service mysqld restart
//copy一个启动脚本,做开机启动
数据导出工具:mysqldump -h -u -p --opt database >; database.sql
数据导入工具:mysql -u username -p < database.sql
相关文章推荐
- linux下mysql安装配置菜鸟篇
- linux 下配置安装mysql以及配置【经验】
- Linux下MySQL安装与配置
- Linux(Ubuntu)下MySQL的安装与配置
- Apache+php+mysql在Linux下的安装与配置
- Linux下采用二进制源码安装mysql,并配置使用mysqld命令启动服务
- linux下安装mysql my.cnf配置文件发生错误
- Linux 下安装和配置 MySQL
- Linux(Ubuntu 10.04)上安装配置apache+php+mysql+phpmyadmin
- CentOS Linux下MySQL 5.1.x的安装、优化和安全配置
- Linux运维进阶-文档总结-LNMP架构之Mysql的安装和配置
- 安装MySQL先复制1. Linux (CentOS 7.3) 下快速安装Mysql数据库(安装教程)2.后复制阿里云配置 MySQL 远程连接的详细步骤
- linux下的mysql安装远程连接配置(基于centos7,mysql5.6.37)
- Centos下安装配置LAMP(Linux+Apache+MySQL+PHP)
- Linux(CentOS6.x)下使用yum软件管理工具安装LNMP(Nginx+PHP+Mysql)环境并配置虚拟主机vhost
- linux下安装配置DBI,perl连接mysql
- CentOS下安装配置LAMP(Linux+Apache+MySQL+PHP)
- linux下mysql安装、目录结构、配置
- Linux jdk+tomcat+mysql 安装及配置
- linux 安装 python2.7 +配置mysql