源码安装mysql

 

MySQL 源码编译安装

cd mysql-5.0.81
./configure --prefix=/usr/local/mysql --sysconfdir=/etc --localstatedir=/var/lib/mysql
make
make install

卸载 make uninstall

 

make clean仅仅是清除之前编译的可执行文件及配置文件。 
而make distclean要清除所有生成的文件。

Makefile

在符合GNU Makefiel惯例的Makefile中,包含了一些基本的预先定义的操作:

make

根据Makefile编译源代码,连接,生成目标文件,可执行文件。

make clean

清除上次的make命令所产生的object文件(后缀为“.o”的文件)及可执行文件。

make install

将编译成功的可执行文件安装到系统目录中,一般为/usr/local/bin目录。

make dist

产生发布软件包文件(即distribution package)。这个命令将会将可执行文件及相关文件打包成一个tar.gz压缩的文件用来作为发布软件的软件包。

它会在当前目录下生成一个名字类似“PACKAGE-VERSION.tar.gz”的文件。PACKAGE和VERSION,是我们在configure.in中定义的AM_INIT_AUTOMAKE(PACKAGE, VERSION)。

make distcheck

生成发布软件包并对其进行测试检查,以确定发布包的正确性。这个操作将自动把压缩包文件解开,然后执行configure命令,并且执行make,来确认编译不出现错误,最后提示你软件包已经准备好,可以发布了。

make distclean类似make clean,但同时也将configure生成的文件全部删除掉,包括Makefile。

 


安装后的MySQL配置
出问题的地方主要是在这里。出现问题的根源在于配置文件以及默认配置。由于是源代码安装且安装的位置不是默认位置,因此有一些选项必须制定才能使MySQL正常运行

 

注:配置下面参数 user 可以指定 特定linux操作系统用户  不一定非要root用户


1.进入安装后的目录执行     初始化数据库 

/usr/local/mysql/bin/mysql_install_db --user=root --basedir=/usr/local/mysql --datadir=/var/lib/mysql --no-defaults

 
2.修改数据库文件权限

chown -R 系统用户:系统用户  /var/lib/mysql


五、设置开机自动启动MySQL服务   

    添加 mysqld 服务
    MySQL已经提供了默认的脚本mysql.server(在[mysql源文件目录]/support-files/下)


cp -p mysql-5.0.81/support-files/mysql.server /etc/init.d/mysqld
chmod 755 /etc/init.d/mysqld

 

  服务开机启动
chkconfig --level 345 mysqld on
 
 3. /etc/mysql/my.cnf    ——mysql的配置文件
首 先应该知道:MySQL寻找配置文件的路径以及顺序。最开始检索的位置是/etc/my.cnf之后是/etc/mysql/my.cnf因此我们要做的 就是在这两个地方之一建立配置文件my.cnf。MySQL为我们准备了几种不同方案的默认配置文件(在/usr/mysql/support- files/中),因此我们可以复制一份到上述的位置
cp /home/mysql-5.0.81/support-files/my-large.cnf /etc/my.cnf
 

在my.cnf 中 [mysqld] 下面加入如下的内容: 传入适当的参数启动mysqld。

 

[mysqld]
# 备注: /etc/init.d/mysqld   中的 user 也要相应修改
user=系统用户       
basedir=/usr/local/mysql
datadir=/var/lib/mysql
default-character-set=utf8
default-collation=utf8_bin
default-storage-engine=innodb
   对应  修改  /etc/init.d/mysqld 中的 user=特点的系统用户
 

更多关于my.cnf的配置限于篇幅就不再讲了,但为了日常的开发需要还应该继续配置的,这部分内容就参考google搜索以及MySQL Manual吧

 

 

Debian/Ubuntu上开机启动服务的管理不是使用chkconfig,而使用的是sysv-rc-conf,尝试执行

代码:

    加入开机自启动:          sudo update-rc.d mysql.server defaults

    从开机自启动中移出:    sudo update-rc.d -f mysql.server remove


sudo sysv-rc-conf

若提示没有安装,则

代码:
sudo apt-get install sysv-rc-conf

之后运行即可,该工具采用的是图形界面,很直观在此就不介绍如何使用了,我们需要做的是找到【mysql】一栏,选定【3】【4】【5】这三列,这样就完成了开机自动启动MySQL daemon了。

 


MySQL数据库连接配置

 

注意,在Ubuntu下MySQL缺省是只允许本地访问的,如果你要其他机器也能够访问的话,那么需要改变/etc/mysql/my.cnf配置文件了!下面我们一步步地来:

默认的MySQL安装之后根用户是没有密码的,所以首先用根用户进入:

$mysql -u root

在这里之所以用-u root是因为我现在是一般用户(firehare),如果不加-u root的话,mysql会以为是firehare在登录。注意,我在这里没有进入根用户模式,因为没必要。一般来说,对mysql中的数据库进行操作, 根本没必要进入根用户模式,只有在设置时才有这种可能。

进入mysql之后,最要紧的就是要设置Mysql中的root用户密码了,否则,Mysql服务无安全可言了。

mysql> UPDATE user SET host='%' ,  PASSWORD=PASSWORD('123456') WHERE USER='root' and host='127.0.0.1';

或者

/usr/local/mysql/bin/mysqladmin -uroot -htest1 password 'new-password' ;

注意,我这儿用的是123456做为root用户的密码,但是该密码是不安全的,请大家最好使用大小写字母与数字混合的密码,且不少于8位。

如果你想进行远程访问或控制,那么你要做两件事:

其一:添加可远程访问数据库的管理员用户

 

1.关闭mysql
# service mysqld stop
2.屏蔽权限 无需密码启动 可 远程访问设置
# mysqld_safe --skip-grant-tables &
3.新开起一个终端输入
# mysql -uroot mysql

 

mysql> FLUSH PRIVILEGES;
-- 给用户授权 , 如user@host不存在 则新建用户 , identified by "123456" 可修改密码
mysql> GRANT ALL PRIVILEGES ON *.* TO root@"%"  WITH GRANT OPTION;
-- grant all privileges on *.* to soak@"%" identified by "123456" with grant option;
mysql> UPDATE user SET PASSWORD=PASSWORD('123456') WHERE USER='root' and host='%';
-- 记得要这句话,否则如果关闭先前的终端,又会出现原来的错误
mysql> FLUSH PRIVILEGES; 
-- delete from user where USER='';
mysql> \q

 

第一行命令解释如下,*.*:第一个*代表数据库名;第二个*代表表名。这里的意思是所有数据库里的所有表都授权给用户。 root:授予root账号。“%”:表示授权的用户IP可以指定,这里代表任意的IP地址都能访问MySQL数据库。“password”:分配账号对 应的密码,这里密码自己替换成你的mysql root帐号密码。

其二:修改配置文件中的访问限制

$sudo gedit /etc/mysql/my.cnf

老的版本中

>skip-networking => # skip-networking

新的版本中

>bind-address=127.0.0.1 => bind-address= 你机器的IP

这样就可以允许其他机器访问MySQL了。

 

 

 

 

问题:

安装mysql,在./configure时出现错误:error: No curses/termcap library found的解决办法

 

mysql版本:5.1.30

 

已经不记得这次是第几次安装mysql了,遇到这个问题倒是第一次。

 

之前在tar./configuremakemake install 经典四步时,从来没有想过其中的过程,只觉得像例行公事一样,做就是了。

不幸的是,这次在./configure后,make时出现以下错误:

make: *** No targets specified and no makefile found. stop. 

于是,在网上找到相关资料,确认是./configure出了问题,于是回头查看,果然发现问题:

最后几行出了错。完整错误信息如下:

checking for tgetent in -lncurses... no

checking for tgetent in -lcurses... no

checking for tgetent in -ltermcap... no

checking for tgetent in -ltinfo... no

checking for termcap functions library... configure: error: No curses/termcap library found

 

 

原因:

缺少ncurses安装包

 

解决办法:

下载安装相应软件包

一、如果你的系统是RedHat系列:

yum list|grep ncurses

yum -y install ncurses-devel

yum install ncurses-devel

 

 

二、如果你的系统是UbuntuDebian

apt-cache search ncurses

apt-get install libncurses5-dev

 

待安装completed!之后,再./configure,顺利通过,然后make && make install,成功安装,一切OK~~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值