【转】Linux系统上安装MySQL 5.5prm
从MySQL官网上分别下载mysql服务器端于客户端包。
如:
MySQL-server-5.5.15-1.linux2.6.x86_64.rpm和MySQL-client-5.5.15-1.linux2.6.x86_64.rpm
并放到/opt目录下
(1)进入系统后,检测是否安装mysql.
如:检测是否安装Mysql输入
#rpm -qa | grep -i mysql
若已安装过,会出现以下
MySQL-server-5.0.22-0.i386
MySQL-client-5.0.22-0.i386
?
(2)那么输入以下命令删除它:
#rpm -ev MySQL-server-5.0.22-0.i386
# rpm -ev MySQL-client-5.0.22-0.i386
?
注意:若删除的时候,出现删除不成功,出现依赖的包,前提必须删除依赖项。rpm -ev ?dovecot-1.0.7-7.el5.x86_64
(1)第一步:安装mysql服务端,输入以下命令
# rpm -ivh /opt/MySQL-server-5.5.15-1.linux2.6.x86_64.rpm
当出现如下:
Preparing... ########################################### [100%]?
?1:MySQL-server ########################################### [100%]?
。。。。。。(省略显示)?
?/usr/bin/mysqladmin -u root password 'new-password'?
/usr/bin/mysqladmin -u root -h test1 password 'new-password'?
。。。。。。(省略显示)
表示MySQL安装完成。
(2)检测mysql 3306是否安打开,输入以下命令
# netstat -nat
当出现如下时,表示mysql 3306端口打开
Active Internet connections (servers and established)?
?Proto Recv-Q Send-Q Local Address ?Foreign Address ?State ?
?tcp 0 0 0.0.0.0:3306 ?0.0.0.0:* ?LISTEN ?
?上面显示可以看出MySQL服务已经启动。
(3)安装mysql客户端,同理输入以下命令
# rpm -ivh /opt/ MySQL-client-5.5.15-1.linux2.6.x86_64.rpm
当出现如下:表示安装成功
warning: MySQL-client-5.1.7-0.i386.rpm: V3 DSA signature: NOKEY, key ID 5072e1f5
?Preparing... ########################################### [100%]?
?1:MySQL-client ########################################### [100%]?
显示安装完毕。
(1)上面都是安装完成了,但都是默认的,还需要很多配置。
先了解下默认安装位置及作用
????1.数据库目录?
?/var/lib/mysql/?
?2、配置文件?
?/usr/share/mysql(mysql.server命令及配置文件)?
?3、相关命令?
?/usr/bin(mysqladmin mysqldump等命令)?
?4、启动脚本?
?/etc/rc.d/init.d/(启动脚本文件mysql的目录)
????如:/etc/rc.d/init.d/mysql start/restart/stop/status
(2)由于MySQL数据库目录占用磁盘比较大,所以我在/根目录下建了个个目录data,命令如下:
#cd /
#mkdir data
建成后,根目录就会出现以下文件夹
(3)把数据库移动到data目录中去。输入以下命令:
#?mv??/var/lib/mysql??/data
最后,进入data目录就会看到有一个mysql文件夹。
?
拷贝完后还需修改/etc/rc.d/init.d/mysql的datadir目录值,修改结果如:
?
basedir=
datadir=/data/mysql
?
(4)拷贝配置文件到/etc目录下,并命名为my.cnf(必须名为my.cnf)
#cp??/usr/share/mysql/my-medium.cnf??/etc/my.cnf
这儿要注意:/usr/share/mysql/下有好几个结尾为cnf的文件,它们的作用分别是:
1.my-small.cnf是为了小型数据库而设计的。不应该把这个模型用于含有一些常用项目的数据库。
2.·my-medium.cnf是为中等规模的数据库而设计的。如果你正在企业中使用RHEL,可能会比这个操作系统的最小RAM需求(256MB)明显多得多的物理内存。由此可见,如果有那么多RAM内存可以使用,自然可以在同一台机器上运行其它服务。
3·my-large.cnf是为专用于一个SQL数据库的计算机而设计的。由于它可以为该数据库使用多达512MB的内存,所以在这种类型的系统上将需要至少1GB的RAM,以便它能够同时处理操作系统与数据库应用程序。
4·my-huge.cnf是为企业中的数据库而设计的。这样的数据库要求专用服务器和1GB或1GB以上的RAM。
这些选择高度依赖于内存的数量、计算机的运算速度、数据库的细节大小、访问数据库的用户数量以及在数据库中装入并访问数据的用户数量。随着数据库和用户的不断增加,数据库的性能可能会发生变化。
?
(5)最后配置/etc/my.cnf文件的datadir,和mysql.sock路径以及默认编码utf-8.
,红色字体标示为修改后的。
[client]
password????????= 123456
port????????????= 3306
socket??????????= /data/mysql/mysql.sock
?default-character-set=utf8
# Here follows entries for some specific programs
?
# The MySQL server
[mysqld]
port????????????= 3306
socket??????????= /data/mysql/mysql.sock
skip-external-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
character_set_server=utf8
collation-server=utf8_general_ci
lower_case_table_names=1
character_set_client=utf8
(注意linux下mysql安装完后是默认:区分表名的大小写,不区分列名的大小写;lower_case_table_names = 0??? 0:区分大小写,1:不区分大小写)
max_connections=1000(设置最大连接数,默认为 151,MySQL服务器允许的最大连接数16384; )
[mysql]
?
default-character-set =?utf8
?
no-auto-rehash
(6)进入/usr/bin目录下重启mysql服务
#mysql_install_db
?
#cd???/usr/bin/mysql restart
(7)登录mysql
#cd /usr/bin/mysql -u root -p
Enterpassword:(直接回车,因为第一次为空密码)
(8)登录成功后,修改密码
进入>mysql环境下,
输入:
> mysql>?show databases;
+--------------------+
| Database???????????|
+--------------------+
| information_schema |
| mysql??????????????|
| performance_schema |
| test???????????????|
+--------------------+
4 rows in set (0.00 sec)
> mysql> use mysql
Database changed
mysql> show tables;
+---------------------------+
| Tables_in_mysql???????????|
+---------------------------+
| columns_priv??????????????|
| db????????????????????????|
| event?????????????????????|
| func??????????????????????|
| general_log???????????????|
| help_category?????????????|
| help_keyword??????????????|
| help_relation?????????????|
| help_topic????????????????|
| host??????????????????????|
| ndb_binlog_index??????????|
| plugin????????????????????|
| proc??????????????????????|
| procs_priv????????????????|
| proxies_priv??????????????|
| servers???????????????????|
| slow_log??????????????????|
| tables_priv???????????????|
| time_zone?????????????????|
| time_zone_leap_second?????|
| time_zone_name????????????|
| time_zone_transition??????|
| time_zone_transition_type |
|?user??????????????????????|
+---------------------------+
24 rows in set (0.00 sec)
> mysql>update user set password=password('123456')where user='root';
修改root密码为123456
最后重启mysql,密码生效
?
?
/usr/local/mysql/bin/mysqld_safe --user=mysql&
#cd???/usr/bin/mysql restart
(6)MySQL安装成功
(7)执行以下语句用来查看MySQL默认编码
mysql> show variables like '%colla%';
+----------------------+-------------------+
| Variable_name??????? | Value???????????? |
+----------------------+-------------------+
| collation_connection | gb2312_chinese_ci |
| collation_database?? | utf8_general_ci?? |
| collation_server???? | utf8_general_ci?? |
+----------------------+-------------------+
3 rows in set (0.00 sec)
mysql> show variables like '%char%';
+--------------------------+----------------------------+
| Variable_name??????????? | Value????????????????????? |
+--------------------------+----------------------------+
| character_set_client???? | gb2312???????????????????? |
| character_set_connection | gb2312???????????????????? |
| character_set_database?? | utf8?????????????????????? |
| character_set_filesystem | binary???????????????????? |
| character_set_results??? | gb2312???????????????????? |
| character_set_server???? | utf8?????????????????????? |
| character_set_system???? | utf8?????????????????????? |
| character_sets_dir?????? | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
111:又时候启动两次MySQL会报错
通过ps aux | grep mysql查看启动进程,然后通过kill -9 进程编号。删除就可以了
--查看数据库的字符集?
show variables like 'character\_set\_%';?
show variables like 'collation_%';
?
(8)MySQL查看当前使用用户
>mysql show processlist
(9)MySQL备份
mysqldump abc(数据库名) --user=root --password > /root/abc.sql
?mysqldump -u root? -p? abc(数据库名)? user (表名)>/user.sql(导出单张表)
注意,如果运行?mysqldump?没有指定?--quick?或?--opt?选项,则会将整个结果集放在内存中。如果导出大数据库的话可能会出现问题
导入:
mysql> use abc;
mysql>source /root/abc.sql(导入数据库)
mysql>source /user.sql(导入单张表)
(10)创建索引
CREATE INDEX IX_NAME ON? USER(NAME) ;
(11)查看索引
SHOW INDEX FROM USER;
(12)修改表字段长度
alter table c_logo_image modify column CONTENT varchar(21840);
(13)添加字段
alter table table1 add transactor varchar(10) not Null;
alter table student add num decimal(8,0) default 0 ;
alter table student2 add loginNum decimal(8,0) not null default 0 ;