您的位置:首页 > 运维架构 > Linux

Linux下编译安装mysql-5.0.45

2013-06-26 14:35 381 查看
安装

rmp -ivh MySQL-server-4.1.22-0.glibc23.i386.rpm --nodeps

rmp -ivh MySQL-client-4.1.22-0.glibc23.i386.rpm --nodeps

查看是否安装成功

netstat -atln

命令看到3306端口开放说明安装成功
登录

mysql [-u username] [-h host] [-p[password]] [dbname]

初始无密码,这个mysql可执行文件在/usr/bin/mysql

目录

1、数据库目录
   /var/lib/mysql/
2、配置文件

/usr/share/mysql
(mysql.server命令及配置文件)
3、相关命令

/usr/bin (mysqladmin mysqldump等命令)
4、启动脚本

/etc/rc.d/init.d/ (启动脚本文件mysql的目录)

修改登录密码

MySQL默认没有密码

usr/bin/mysqladmin -u root password 'new-password'

格式:

mysqladmin -u用户名 -p旧密码 password 新密码

启动与停止
MySQL安装完成后启动文件mysql在
/etc/init.d
目录下,在需要启动时运行下面命令即可
启动:

/etc/init.d/mysql start

停止:

/usr/bin/mysqladmin -u root -p shutdown

重新启动:

sudo /etc/init.d/mysql restart

自动启动:
察看mysql是否在自动启动列表中
/sbin/chkconfig --list
把MySQL添加到你系统的启动服务组里面去
/sbin/chkconfig --add mysql
把MySQL从启动服务组里面删除
/sbin/chkconfig --del mysql

配置
将/usr/share/mysql/my-medium.cnf复制到/etc/my.cnf,以后修改my.cnf文件来修改mysql的全局设置
将my.cnf文件中的innodb_flush_log_at_trx_commit设成0来优化
[mysqld]后添加添加lower_case_table_names设成1来不区分表名的大小写

设置字符集
MySQL的默认编码是Latin1,不支持中文,要支持需要把数据库的默认编码修改为gbk或者utf8。
1、中止MySQL服务(bin/mysqladmin -u root shutdown)
   2、在/etc/下找到my.cnf,如果没有就把MySQL的安装目录下的support-files目录下的my-medium.cnf复制到/etc/下并改名为my.cnf即可
   3、打开my.cnf以后,在[client]和[mysqld]下面均加上default-character-set=utf8,保存并关闭
   4、启动MySQL服务(bin/mysqld_safe &)
查询字符集:show variables like '%set%';

增加MySQL用户
格式:

grant select on 数据库.* to 用户名@登录主机 identified by "密码"

grant select,insert,update,delete on *.* to user_1@'%' Identified by '123';

grant all on *.* to user_1@'localhost' Identified by '123';

远程访问
  其一: 

GRANT ALL PRIVILEGES ON *.* TO xoops_root@'%' IDENTIFIED BY '654321';

  允许xoops_root用户可以从任意机器上登入MySQL。
  其二:
  编辑 /etc/mysql/my.cnf
  >skip-networking => # skip-networking
  这样就可以允许其他机器访问MySQL了。
grant all on *.* to 'root'@'ip' identified by 'password';

备份与恢复
备份
进入到库目录,cd /val/lib/mysql

mysqldump -u root -p --opt aaa > back_aaa

恢复

mysql -u root -p ccc < back_aaa

(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,密码生效
使用root登陆到mysql后

mysql> update user set host='%' where user='root';

ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY'

mysql> select host,user from user;

+-----------------------+------+

| host | user |

+-----------------------+------+

| % | root |

| 127.0.0.1 | root |

| 192.168.128.142 | root |

| ::1 | root |

| localhost.localdomain | root |

+-----------------------+------+

5 rows in set (0.00 sec)

然后:

mysql> grant all privileges on *.* to 'root'@'%' with grant option;

Query OK, 0 rows affected (0.08 sec)

mysql> exit
使用root登陆到mysql后

mysql> update user set host='%' where user='root';

ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY'

mysql> select host,user from user;

+-----------------------+------+

| host | user |

+-----------------------+------+

| % | root |

| 127.0.0.1 | root |

| 192.168.128.142 | root |

| ::1 | root |

| localhost.localdomain | root |

+-----------------------+------+

5 rows in set (0.00 sec)

然后:

mysql> grant all privileges on *.* to 'root'@'%' with grant option;

Query OK, 0 rows affected (0.08 sec)

mysql> exit

/etc/init.d/mysql restart 重启生效

(呵)近一段时间由于工作需要,终于开始玩Linux了,今天搞了一天的MySQL编译安装,记录下来,备忘吧!!

(卡)安装环境:VmWare5(桥接模式) + RedHat E AS 4 + 已安装了开发工具以及相关开发包(安装Linux系统时自己要定制的),并测试成功

(!)先给出MySQL For Linux 源码下载地址,是xx.tar.zg格式的

http://www.filewatcher.com/m/mysql-5.0.45.tar.gz.24433261.0.0.html

(1)

-------------预备工作----------

1:假如下载的文件名为:mysql-5.0.45.tar.gz

2:假如copy到 /home下

3:groupadd mysql #添加mysql组

4:useradd -g mysql mysql #添加一个mysql用户

5:cd /home #进入到该目录

-----------------------编译过程-----------------------

6:tar zxvf mysql-5.0.45.tar.gz #解压后,在该目录下会出现一个同名的文件夹

7:cd /home/mysql-5.0.45

8:./configure --prefix=/usr/local/mysql --with-charset=utf8 --with-collation=utf8_general_ci --with-extra-charsets=latin1 #参数设置,可以先不明白,以后再修改配置

9:make

10:make install

11:cp support-files/my-medium.cnf /etc/my.cnf #如果/etc/my.cnf已存在,则先备份,再删除

12:vi /etc/my.cnf #将log-bin=mysql-bin注释掉

----------------------------安装并初步配置mysql--------------------------

13:cd /usr/local/mysql

14:bin/mysql_install_db --user=mysql #初始化mysql

15:chown -R root . #改当前目录的捅有者为root。注意,最后有个 . 啊,表示当前目录

16:chown -R mysql /usr/local/mysql/var #-R表示递归之下的所有目录

17:chgrp -R mysql /usr/local/mysql #改变目录所属为mysql

18:bin/mysqld_safe --user=mysql & #启动mysql

-----------------------------------------更改mysql的root用户密码----------------------------

19:bin/mysqladmin -uroot password 123456 #在mysql政党启动的情况下,更改root用户的登录密码

20:bin/mysql -uroot -p #输入此命令后,会提示你输入root用户密码123456,

21:show databases; #如果查出所有数据库,就恭喜你了

------------------------------------------------------把mysql加入到系统服务中-------------------------------------

22:cp /usr/local/mysql/share/mysql/mysql.server /etc/init.d/mysqld

chkconfig --add mysqld #加入到系统服务中,就可以通过service mysqld start|stop|status|restart等进行管理,很是方便,就不用再到/usr/local/mysql5.0.45/bin/启动mysql了

------------------------------------------------------------------配置mysql环境变量------------------------------------------------

23:cd /root #回到你的个人主目录,我这里是用root登陆的

cp .bashrc .bashrc.bak #备份一下吧

vi .bashrc

在最后加入:export PATH=/usr/local/mysql/bin:$PATH:.

source ~/.bashrc #回到终端再输入此命令,以使刚修改的起作用,~代表用户主目录

env #查看一下是否生效

24:此是用来替换23步的一种方法

cp /usr/local/mysql/bin/mysql /usr/bin/mysql #把mysql常用的工具目录加入到系统变量目录中去,自己选择性加,这样做主要是可以直接运行该工具,而不需要切换到该目录下,类似于添加环境变量了

-------------------------------------------------------------------------------让Linux开放3306端口-------------------------------------------

25:service iptables stop

vi /etc/sysconfig/iptables

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

service iptables start

-------------------------------------------------------------------------------给root用户开启mysql远程访问权限--------------------------------------------

26:shutdown -hr now #重启

ps -e | grep mysql #查看mysql是否已随开机启动,或者输入:service mysqld status

mysql -uroot -p #进入mysql

输入root用户的密码

grant all on *.* to root@'%' identified by '123456';

#grant 权限 on 数据库名.表名 to 用户@登录主机 identified by "用户密码";

flush privileges; #为了开发方便,可以让root用户具有远程访问的权限

#最后,再附上一个很好用的mysql客户端,http://download.csdn.net/source/924456

(2)默认的mysql数据库目录是 /usr/local/mysql-5.0.45/var

我们在安装时指定了安装目录为/usr/local/mysql-5.0.45,除了在这里安装所要的文件外,还有一部分用户常用的,可执行二进制文件被放到了/usr/bin中,其实,在/usr/local/mysql-5.0.45/bin下,全都有这些命令了,之所以要在/usr/bin中把那几个命令考过来,就是为了方便,相当于设置环境变量了,你可以echo
$PATH一下,里面一定有/usr/bin这个值的。

明白了安装过程,删除mysql也就不足为难了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: