Linux安装MySQL--源码安装

来源:互联网 发布:如何购买淘宝账号 编辑:程序博客网 时间:2024/05/18 05:53

第一步:安装cmake工具:
1.下载cmake工具
tar xvf cmake-2.8.8.tar.gz
cd cmake-2.8.8
2.将cmake工具编译到指定位置,示例/usr/local/src
./bootstrap --prefix=/usr/local/src
3.编译>>执行
make
make install

第二步:安装MySQL
1.下载软件包mysql-5.0.22.tar.gz,地址http://www.mysql.com,一般不推荐安装rpm形式的;
2.把下载下来的mysql-5.0.22.tar.gz放在usr目录下并解压:
# tar zvxf mysql-5.0.22.tar.gz
3.# cd mysql-5.0.22 //进入解压缩后的文件目录;
4. 创建mysql组,如果需要可以再创建一个mysql用户,并添加到mysql组,也可以将当前用户添加到mysql组
# /usr/sbin/groupadd mysql //创建mysql组
# /usr/sbin/useradd -g mysql mysql //创建mysql用户
5.安装
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DMYSQL_TCP_PORT=3306
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_EXTRA_CHARSETS:STRING=utf8 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1
5.编译:# make //只是一个make就够了
6.安装:# makeinstall //这两步都要一些时间

7.安装完添加一个mysql用户组并设置权限:
#chmod +w /usr/local/mysql
#chown -Rroot:mysql /usr/local/mysql //demo以root用户为例

8.配置
#cd support-files/

#cp my-large.cnf /var/mysql/my.cnf(如果是debian,my.conf需要放在/etc/mysql/下面)

#cp mysql.server /etc/init.d/mysqld

9.配置启动MySQL,若有需要请先修改 mysql 的配置 my.cnf

vi /var/mysql/my.cnf(配置如下参数,其他的可更具需要配置)

basedir=/usr/local/mysql \
datadir=/usr/local/mysql/data \
user=root

10.mysql 初始化安装

# chmod 777 /usr/local/mysql/data
# scripts/mysql_install_db \
--basedir=/usr/local/mysql \
--datadir=/var/mysql/data \
--user=mysql

11. 将 mysql 加入开机启动

#chmod +x /etc/init.d/mysqld

#vi /etc/init.d/mysqld (编辑此文件,查找并修改以下变量内容,以下两个参数若在my.cnf文件中配置了,就可忽略该步骤,否则要加上)
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data

12.你可以看看你的服务是否已经添加到linux上
[root@localhost ~]# chkconfig --list mysqld
mysqld 0:off 1:off 2:off 3:off 4:off 5:off 6:off

[root@localhost ~]#
chkconfig --add mysqld
chkconfig --level 345 mysqld on

12. 启动 mysql

/usr/local/mysql/bin/mysqld_safe &
或者 /etc/init.d/mysql start


13.进入mysql
/usr/local/mysql/bin
./mysql -uroot
在shell环境下用mysqladmin程序来设置密码
  如 mysqladmin -u root password "your password"


第三步: 配置mysql可远程访问

查询mysql数据库中的User表:select user, host, password from mysql.user; 

+---------+----------------+---------------------------------------------------------------------------+
| user     |   host           |                                           password                                        |
+---------+----------------+---------------------------------------------------------------------------+
| root      |   localhost   | *4ACFE3202A5FF5CF467898FC58AAB1D615029441  |
| root      |   SUSE         |                                                                                                     |
+---------+----------------+---------------------------------------------------------------------------+

如上结果,设置远程访问有两种方式:

A.直接修改root为可远程访问的用

> use mysql

> update user set host = '%'  from user where host = 'localhost ' and user = 'root'

这样做的好处是root用已经具有了l数据库所有权限,所以更新后不用再授权,坏处是通过root用户来远程方位不安全。


B.在user表中添加一个用户(user, host, password这三个字段必须,其他字段不同版本之间有差异,只要是不为空的就都添加进来,把值给我“”即可)

> insert into user(user, host, password, ssl_cipher, x509_issuer, x509_subject) values('mysql','%', password(123), '', '', '');

成功后查询数据:

+---------+----------------+---------------------------------------------------------------------------+
| user     |   host           |                                           password                                        |
+---------+----------------+---------------------------------------------------------------------------+
| root      |   localhost   | *4ACFE3202A5FF5CF467898FC58AAB1D615029441  |
| root      |   SUSE         |                                                                                                     |
| mysql  |   %                | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 |
+---------+----------------+---------------------------------------------------------------------------+

授权刚刚添加的用户

GRANT ALL PRIVILEGES ON database.table TO 'mysql'@'%' WITH GRANT OPTION;


红色部分可修改为要授权的数据名称和表名称。权限也可以指定某些,示例指定了所有权限。


参考资料:

http://zl342622.blog.163.com/blog/static/1730414220117318759411/

http://tec110505.diandian.com/post/2011-08-23/4225393

原创粉丝点击