Linux上安装MySQL并且使用_在linux上使用源代码安装MySQL

我一直使用的都是CentOS,前段时间折腾了几次,期间也总结了网友的各种介绍,现在总结如下,方便自己以后查看,也方便其他人学习使用。

1 环境

linux:CentOS 6.5/6.3 x86/x86_64均实验过

2 准备

这里进行介绍所需要的软件或工具版本有:

MySQL:mysql-5.5.37.tar.gz,cmake:cmake-2.8.12.2.tar.gz

这些都可以到相应的官网下载,版本无关紧要,重要的是过程和方法。

还要为linux安装gcc和gcc-c++以及ncurses-devel和由此产生的依赖,直接使用yum进行安装

yum install gcc gcc-c++ ncurses-devel 安装完后就可以进行正式的安装了。

3 安装cmake

将下载好的cmake-2.8.12.2.tar.gz上传到linux上,然后解包

tar -zxvf cmake-2.8.12.2.tar.gz 进入解压出来的目录,然后按照要求运行安装命令(中间可能要等一会儿)

cd cmake-2.8.12.2

./boostrap

make

make install 这样就把cmake装好了,之后就可以安装MySQL了。

4 准备mysql用户和组以及目录

groupadd mysql

useradd -g mysql mysql

cd /usr/local

mkdir mysql

cd mysql

mkdir data

mkdir log

cd ..

chown -R mysql:mysql mysql 这样就创建了mysql的用户和用户组,也创建了安装的相关目录。这里的目录可以修改,但是要和接下来的安装配置相对应。

5 安装mysql

将下载的mysql-5.5.37.tar.gz上传到linux上,解压缩包

tar -zxvf mysql-5.5.37.tar.gz 进入源代码目录

cd mysql-5.5.37 使用cmake配置编译文件

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS:STRING=utf8,gbk -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_USER=mysql 这里面的目录要和之前准备的目录关联,如果提示出错的话还要删除cmake的缓存文件,修正错误,然后重新配置。

配置成功后就可以编译安装了,中间要等一段时间

make

make install

6 mysql的安装后配置

修改文件权限

chmod +w /usr/local/mysql/

chown -R mysql:mysql /usr/local/mysql/ 查看链接库的情况

ls /usr/local/mysql/lib 输出可能是这个样子的

libmysqlclient.a libmysqlclient_r.so.18.0.0 libmysqlservices.a

libmysqlclient_r.a libmysqlclient.so plugin

libmysqlclient_r.so libmysqlclient.so.18

libmysqlclient_r.so.18 libmysqlclient.so.18.0.0 要创建一个链接文件,如果具体的输出不一样,对应更改

ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib/libmysqlclient.so.18 进入源代码目录下面的配置文件目录

cd support-files/ 复制相关配置文件

cp f /etc/f

cp mysql.server /etc/rc.d/init.d/mysql 初始化安装,

/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql 为文件添加可执行权限

chmod +x /etc/init.d/mysql 修改配置文件,

vi /etc/init.d/mysql

找到修改为

basedir=/usr/local/mysql

datadir=/usr/local/mysql/data

mysqld_pid_file_path=/usr/local/mysql/log/mysql.pid 为mysql服务添加开机自动启动

chkconfig --add mysql

chkconfig --level 345 mysql on 具体的启动“等级”根据需要修改

前面都正确的话现在就可以启动服务了,

service mysql start 接下来是权限方面的配置

7 mysql的权限和用户配置

为可执行文件添加链接

ln -s /usr/local/mysql/bin/mysqladmin /usr/bin

ln -s /usr/local/mysql/bin/mysql /usr/bin

这样就可以直接使用mysql和mysqladmin命令了,其他的根据需要再添加。

设置root用户(这个root是mysql的root用户)密码

mysqladmin -uroot password '你的密码' 接下来使用刚才的密码登录mysql

mysql -uroot -p

(接下来会要求输入你的密码) 登陆成功后就可以配置具体的权限了,接下来的操作都是在“mysql>”提示符下进行的,表示已登录mysql。

use mysql

mysql> select user,password from user; 查询当前已有的账户,可以看到有很多没有密码的用户,这是需要删除的,

delete from user where password='';

mysql> select user,password from user; 这样就会删除了空密码用户,然后在查看用户列表,就会发现只有一个用户了。

当前的用户还不能在除服务器外的机器上登录,这显然是不应该的,添加root用户远程拥有所有权限

grant all privileges on *.* to root@'%' identified by '你的密码' with grant option; 具体的场景下,如果要对权限进行限制,则需要修改具体的语句。

为每一个数据库创建单独的用户并分配全显示很有必要的,下面就是创建一个名为recruitdba的用户,并分配权限为所有主机操作recruit数据库的所有权限

CREATE USER 'recruitdba'@'%' IDENTIFIED BY 'recruitdba';

grant all privileges on recruit.* to recruitdba@'%' identified by 'recruitdba' with grant option;

flush privileges;

至此,mysql的安装和配制就完成了,具体的环境下有一些不一样的就需要灵活变通了

8 额外配置

有些时候会发现linux的防火墙会阻挡mysql的数据包,所以要添加防火墙规则

vi /etc/sysconfig/iptables

#添加3306端口

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

当然这个规则还需要仔细规划,端口也最好不要默认的,修改一下,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值