linux mysql安装

ftp://mirror.leaseweb.com/mysql/Downloads/MySQL-5.1/


首先参考了:http://sheng.iteye.com/blog/830209 的博客。

(由于没有安装成功,所以在其博客的基础上做了相应的修改如下)
1、下载MySQL免安装版/二进制版软件(不用编译)
按照自己系统选择 http://www.mysql.com/downloads/installer/

2、创建MySQL组,建立MySQL用户并加入到mysql组中
(不同版本的Unix中,groupadd和useradd的语法可能会稍有不同。)
#groupadd mysql
#useradd -g mysql mysql

3、进入目录/usr/local,解压缩免安装版,并在此目录中建立名为 mysql的软连接
# tar -zxvf mysql-5.5.2-m2-linux-i686-glibc23.tar.gz
解压后会得到一个目录 mysql-5.5.2-m2-linux-i686-glibc23
在目录/usr/local 建立名字为mysql的软连接
#ln -s /opt/mysql-5.5.2-m2-linux-i686-glibc23 mysql

4、添加MySQL配置文件
如果你想要设置一个选项文件,使用support-files目录中的一个作为模板。在这个目录中有4个模板文件,是根据不同机器的内存定制的。
#cp support-files/my-medium.cnf /etc/my.cnf
说明support-files目录在你解压的 mysql-5.5.2-m2-linux-i686-glibc23 目录里面
(可能你需要用root用户运行这些命令。)
这里需要添加一些设置,否则会出现:The server quit without updating PID file 错误
编辑/etc/my.cnf文件
在[mysqld]下面加上:datadir=/usr/local/mysql/data
如下图所示:

其中/usr/local/mysql/data 就是mysql-5.5.2-m2-linux-i686-glibc23目录下的data目录
再到/usr/local/mysql/data 执行chown -R mysql:mysql *
然后杀掉mysql进程(没有mysql就算了)。

5、设定目录访问权限,用mysql_install_db创建MySQL授权表初始化,并设置mysql,root帐号访问权限
#cd mysql
#chown -R mysql .
#chgrp -R mysql .
#scripts/mysql_install_db –user=mysql
#chown -R root .
#chown -R mysql data
(注意以上命令中的" . "符号不能少。)

6、运行MySQL
#bin/mysqld_safe –user=mysql &
(如果没有问题的话,应该会出现类似这样的提示:
[1] 42264
# Starting mysqld daemon with databases from /usr/local/mysql/var

如果出现 mysql ended这样的语句,表示Mysql没有正常启动,你可以到log中查找问题,Log文件的通常在/etc/my.cnf中配置。

大多数问题是权限设置不正确引起的。 )

7、设置root密码。默认安装密码为空,为了安全你需要修改密码
#/usr/local/mysql/bin/mysqladmin -uroot password yourpassword

8、拷贝编译目录的一个脚本,设置开机自动启动
#cp support-files/mysql.server /etc/rc.d/init.d/mysqld
#chmod 700 /etc/init.d/mysqld
#chkconfig –add mysqld
#chkconfig –level 345 mysqld on

9、启动mysqld服务
#service mysqld start

10、查看3306端口是否打开。要注意在防火墙中开放该端口
#netstat -atln

解压版mysql安装完成后,用jdbc连接进行数据库操作,出现了一下问题:
Host xxx.xxx.xxx.xxx is not allowed to connect to this MySQL server
这涉及到了mysql的远程访问权限的问题。
那么如何开启Mysql的远程访问账号,请看如下资料:
增加允许远程连接 MySQL 用户并授权。

1)首先以 root 帐户登陆 MySQL
在 Windows 主机中点击开始菜单,运行,输入“cmd”,进入控制台,MySQL 的 bin 目录下,然后输入下面的命令。
在 Linux 主机中在命令提示行下输入下面的命令。(请使用mysql的root用户登录)
#mysql -uroot -p123456

2)创建远程登陆用户并授权
mysql>grant all PRIVILEGES on discuz.* to ted@'123.123.123.123' identified by '123456';
注意:上面的语句表示将 discuz 数据库的所有权限授权给 ted 这个用户,允许 ted 用户在 123.123.123.123 这个 IP 进行远程登陆,并设置 ted 用户的密码为 123456 。
下面逐一分析所有的参数:
all PRIVILEGES 表示赋予所有的权限给指定用户,这里也可以替换为赋予某一具体的权限,例如:select,insert,update,delete,create,drop 等,具体权限间用“,”半角逗号分隔。
discuz.* 表示上面的权限是针对于哪个表的,discuz 指的是数据库,后面的 * 表示对于所有的表,由此可以推理出:对于全部数据库的全部表授权为“*.*”,对于某一数据库的全部表授权为“数据库名.*”,对于某一数据库的某一表授权为“数据库名.表名”。
ted 表示你要给哪个用户授权,这个用户可以是存在的用户,也可以是不存在的用户。
123.123.123.123 表示允许远程连接的 IP 地址,如果想不限制链接的 IP 则设置为“%”即可。
123456 为用户的密码。
执行了上面的语句后,再执行下面的语句,方可立即生效。
mysql>flush privileges;

配置完成,已经可以使用了。就先写到这里吧!

补充:MySQL在Linux下安装数据库名、表名、列名、别名大小写规则:
1.数据库名和表名严格区分大小写;
2.表的别名严格区分大小写;
3.列名和列的别名在所有的情况下都忽略大小写;
4.变量名也是严格区分大小写的。

注意:
A、Linux下MySQL安装完后默认:区分表名的大小写,不区分列名的大小写。
B、改变表名的大小写区分规则的方法:用root帐号登录,在/etc/my.cnf 或 /etc/mysql/my.cnf 中的[mysqld]后添加添加lower_case_table_names=1,重启MySQL服务,若设置成功,则不再区分表名的大小写


一、准备工作
注:由于是在一台已经存在并经过多方使用的服务器上安装,所以需要先确认下该台服务器上是否已经安装Mysql
1、groupadd mysql 时提示 mysql 已存在,useradd -g mysql mysql 时也提示已存在,基本上可以确认已经安装过mysql;
切换到mysql下查看mysql进程,结果显示没有则表示当前 mysql 未启动;
输入 mysql start 时出现错误提示:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2), 先不研究这个错误了,准备重新安装mysql。
输入 rpm -qa|grep mysql ,无任何信息显示,表明之前不是以这种方式安装的,则不需要卸载,直接进行新的安装。

2、系统环境确认:
输入命令: uname -a 得到信息如下: Linux localhost.localdomain 2.6.9-55.ELsmp #1 SMP Fri Apr 20 17:03:35 EDT 2007 i686 i686 i386 GNU/Linux ,表明系统是32位;

3、下载Mysql 安装包:
从官网(http://www.mysql.com/downloads/mysql/ )下载相应的安装包(我的是 mysql-5.1.51-linux-i686-glibc23.tar.gz);

二、安装
1、新建 mysql 组和用户(已建,略过);
2、用 root 用户给 mysql 安装路径授权,依次执行:
Shell代码 收藏代码
MYSQL_BASE=/opt/mysql
mkdir -p $MYSQL_BASE/product/5.1
mkdir -p $MYSQL_BASE/mysqldata/mysqllog
mkdir -p /var/run/mysqld/
mkdir -p /etc/mysql
chmod -R 777 $MYSQL_BASE
chown -R mysql:mysql $MYSQL_BASE
chown -R mysql:mysql /etc/mysql
chown -R mysql:mysql /var/run/mysqld/
注:以上路径是我准备安装 mysql 的路径,部分路径与实际环境相关

3、切换到mysql 用户,设置 mysql 用户环境变量:编辑 /home/mysql/.bash_profile 文件,增加如下内容:
Txt代码 收藏代码
export MYSQL_BASE=/opt/mysql
export BASEDIR=$MYSQL_BASE/product/5.1
export DATADIR=$MYSQL_BASE/mysqldata
export LD_LIBRARY_PATH=$BASEDIR/lib:/lib:/usr/lib:/usr/local/lib
export TMPDIR=/tmp
export PATH=$PATH:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin
export PATH=$PATH:$BASEDIR/bin:$MYSQL_BASE:$BASEDIR:$LD_LIBRARY_PATH
4、将安装包上传到 mysql 用户主目录下,依次执行:
Shell代码 收藏代码
cd $BASEDIR
tar -zxvf /home/mysql/mysql-5.1.51-linux-i686-glibc23.tar.gz
cd $BASEDIR
cd mysql-5.1.51-linux-i686-glibc23
mv * ../
cd ..
rm -r mysql-5.1.51-linux-i686-glibc23
5、开始安装 mysql:
1) 执行:
Shell代码 收藏代码
cd $BASEDIR
./scripts/mysql_install_db --basedir=$BASEDIR --datadir=$DATADIR --user=mysql
出现类似如下文字则表示成功:
Txt代码 收藏代码
Installing MySQL system tables...
OK
Filling help tables...
OK

To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !

To do so, start the server, then issue the following commands:

/opt/mysql/product/5.1/bin/mysqladmin -u root password 'new-password'
/opt/mysql/product/5.1/bin/mysqladmin -u root -h localhost.localdomain password 'new-password'

Alternatively you can run:
/opt/mysql/product/5.1/bin/mysql_secure_installation

which will also give you the option of removing the test
databases and anonymous user created by default. This is
strongly recommended for production servers.
See the manual for more instructions.

You can start the MySQL daemon with:
cd /opt/mysql/product/5.1 ; /opt/mysql/product/5.1/bin/mysqld_safe &

You can test the MySQL daemon with mysql-test-run.pl
cd /opt/mysql/product/5.1/mysql-test ; perl mysql-test-run.pl

Please report any problems with the /opt/mysql/product/5.1/scripts/mysqlbug script!
2) 切换到 root 用户, 依次执行:
Shell代码 收藏代码
cd /opt/mysql/product/5.1
cp ./support-files/my-medium.cnf /etc/my.cnf
cp ./support-files/mysql.server /etc/init.d/mysql
chkconfig --add mysql
chkconfig --level 345 mysql on

3) 编辑 /etc/my.cnf 文件,找到如下片段:
Txt代码 收藏代码
[mysqld]
port = 3306
socket = /tmp/mysql.sock
skip-locking
key_buffer_size = 16M
max_allowed_packet = 1M
table_open_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
在下面增加:
Txt代码 收藏代码
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
basedir = /opt/mysql/product/5.1
datadir = /opt/mysql/mysqldata
lower_case_table_names = 1
default-storage-engine = INNODB
innodb_additional_mem_pool_size = 16M
innodb_buffer_pool_size = 2G
innodb_data_file_path = ibdata1:1000M:autoextend
innodb_autoextend_increment = 64
innodb_file_per_table = 1
innodb_data_home_dir = /opt/mysql/mysqldata
innodb_file_io_threads = 4
innodb_thread_concurrency = 16
innodb_flush_log_at_trx_commit = 2
innodb_log_buffer_size = 8M
innodb_log_file_size = 512M
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 40
innodb_lock_wait_timeout = 120
innodb_locks_unsafe_for_binlog = 1
innodb_autoinc_lock_mode = 2
修改 [client] 和 [mysqld] 下的 socket 那行为:
Txt代码 收藏代码
socket = /var/run/mysqld/mysqld.sock

注:Linux环境是区分大小写的,所以要加 lower_case_table_names = 1 这个配置
about lower_case_table_names:
0 - table names are stored as specified and comparisons are case sensitive.
1 - table names are stored in lowercase on disk and comparisons are not case sensitive.
2 - table names are stored as given but compared in lowercase. This option also applies to database names and table aliases.

4) 启动mysql, 用 mysql 用户执行: /etc/init.d/mysql start 显示:
Txt代码 收藏代码
Starting MySQL........................................................[ 确定 ]
则表示启动成功。
执行 ps ux 进行查看,有类似如下进程:
/opt/mysql/product/5.1/bin/mysqld --basedir=/opt/mysql/product/5.1 --datadir=/opt/mysql/mysqldata --user=mysql2 --log-error=/opt/mysql/mysqldata/localhost.localdomain.err --open-files-limit=8192 --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/run/mysqld/mysqld.sock --port=3306

如需关闭数据库,则执行: /etc/init.d/mysql stop

三、初始设置
1、设置数据库root用户密码:
Mysql command代码 收藏代码
/opt/mysql/product/5.1/bin/mysqladmin -u root password 'new-password'
/opt/mysql/product/5.1/bin/mysqladmin -u root -p -h localhost.localdomain password 'new-password'

四、创建数据库
1、新建数据库用户 test ,密码也是 test,依次执行:
Shell代码 收藏代码
mysql -u root -p
mysql> insert into mysql.user(Host,User,Password) values("localhost","test",password("test"));
mysql> flush privileges;
mysql> exit;

2、创建数据库 testdb,并赋予 test 用户操作修改该数据库的权限,依次执行:
Shell代码 收藏代码
mysql -u root -p
mysql> create database testdb default character set utf8;
mysql> grant all privileges on testdb.* to test@localhost identified by 'test';
mysql> flush privileges;
mysql> exit;

3、用 test 用户登录,创建数据表等:
Shell代码 收藏代码
mysql -u test -p
mysql> use testdb;
...

至此,基本完成。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值