ubuntu15.04手动安装MySQL5.6.27数据库
1.手动安装的原因
使用apt-get install mysql-server命令安装MySQL的时候,环境变量已经配好了,
但是由于配置文件/etc/mysql/my.cnf配置不完整,跟网上的不一样,而且这种安装方法是默认绑定到本机上的,也就是说只能在本机
访问,不能从其他机子进行远程访问(在账号允许在其他机子登陆的情形下)。
按照网上的方法,在my.cnf下的[mysqld]下并不能找到bind-address=127.0.0.1这一项。我就添加了bind-address=0.0.0.0这一项,但
是之后启动一直出错。。。然后在修改编码后shell登陆时,居然还是不能敲入中文,这让人更加无语。。。
用apt-get install比较方便,都是系统帮你配好了,要更改比较麻烦,不能按照自己的个性设置。
2.手动安装
2.1下载MySQL安装包
访问MySQL官网:http://www.mysql.com/,根据系统下载对应的版本,要注册一个oracle账号,才可以下载。
如我的机子是64位的ubuntu版本,下载的是mysql-5.6.27-linux-glibc2.5-x86_64.tar.gz。
如果你的机子是32位的,安装64位版本会出错!因为x86_64是64位版本,而x86才是32位版本。
下载链接:http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.27-linux-glibc2.5-x86_64.tar.gz
由于下载的压缩包较大,存放在/tmp目录下。
2.2解压mysql压缩包
首先切换到/usr/local目录下:cd /usr/local
然后解压:
sudo tar zxvf /tmp/mysql-5.6.27-linux-glibc2.5-x86_64.tar.gz
当前目录下出现解压后的文件夹:mysql-5.6.27-linux-glibc2.5-x86_64
将其重命名为mysql:mv mysql-5.6.27-linux-glibc2.5-x86_64 mysql
2.3更改mysql文件及其子目录的权限
解压后属主默认是root,属组默认是root,我的用户名是gzx。改变属主为我。
sudo chown -R gzx.gzx mysql
接下来在切换到mysql目录下:cd mysql
执行 sudo ./scripts/mysql_install_db --user=gzx
复制文件到init.d下,使机子开机时自动启动mysql服务器。
sudo cp support-files/mysql.server /etc/init.d/mysql.server
执行sudo ./scripts/mysql_install_db --user=gzx
如果提示找不到libaio.so.1共享库找不到,即如下图:
说明ubuntu15.04不存在libaio.so.1,查询一下是否安装:dpkg -l | grep libaio
如果什么都没有显示,说明没有安装这个依赖包,
找一下软件包的名字:apt-cache search libaio
然后根据软件包的名字进行下载:sudo apt-get install libaio-dev libaio1
如下图:
最后再重复sudo ./scripts/mysql_install_db --user=gzx即可。
安装成功的画面如下:
启动mysql服务器:./support-files/mysql.server start
如果出现如下错误:without updating files
修改mysql目录下的my.cnf配置文件:
找到[mysqld]模块,去掉注释#,添加
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port=3306
保存文件后再执行上述命令即可。
2.4 查看mysql服务器是否启动
使用如下命令:sudo lsof -i:3306
显示如下界面则表示成功启动:
否则可能是配置文件有错误。
2.5 配置环境变量
为了能在shell下使用mysql的bin工具,需要将其配置到/etc/profile里。
命令如下:sudo vi /etc/profile
在上方添加一行:export MYSQL_HOME=/usr/local/mysql
然后在PATH末尾下添加bin目录,添加$MYSQL_HOME/bin:$PATH到PATH末尾
具体如下图:
保存后退出,运行如下命令,使环境变量生效:source /etc/profile
再在shell下运行如下命令 :export $MYSQL_HOME。
具体如下图:
2.6 登陆mysql
使用root账号登陆:mysql -uroot -p
默认密码为空。
出现如下界面,表示登陆成功:
2.7 修改mysql的编码方式
默认情况下,mysql建立数据库和表时使用的编码为latin1,不能使用中文,需要修改配置文件my.cnf。
修改前:
在my.cnf下找到[client]模块,添加如下文字:default-character-set=utf8
在my.cnf下找到[mysql]模块,添加如下文字:default-character-set=utf8
在my.cnf下找到[mysqld]模块,添加如下文字:
character-server-set=utf8
init_connect='SET NAMES utf8'
注意上述必须是character-server-set=utf8,不能是default-character-set=utf8,否则会出错。
具体如下图:
接下来重启mysql服务器:service mysql restart。使之前配置生效。
登录服务器后,输入如下命令查看编码:show variables like 'char%';
出现如下界面表示修改成功:
2.8修改服务器root的密码和允许root远程登陆
如果没有密码,root可能会对新创建的表缺权限。默认情况下,root账号只能在本机登陆,需修改进行登陆的主机。
2.8.1 更改root账号为所有主机都可以登陆
update mysql.user set host='%' where user='root' and host='localhost';
2.8.2 修改root密码
set password for 'root'@'localhost' = password('201314');
其中201314为密码明文,但mysql.user用户表保存的是经过password()方法处理的密文,这可以通过查表得知。
刷新权限,以下为必须步骤,否则不起作用。
flush priveleges;
接下来查看用户表中的账号:
select user, host, password from mysql.user;
结果如下图:
2.8.3 远程登陆命令
mysql -uroot -p201314 -h192.168.1.107
注意h与IP地址最好不要有空格。
2.9 其他错误
2.9.1 开机时mysql不会自动开启
在mysql的配置文件下的[mysqld]下添加user=我的用户名,
再输入如下命令:sudo update-rc.d -f mysql.server defaults
之后重启机器即可。
2.9.2 修改配置文件后,启动时提示错误:too many variables
需加上--user=我的用户名选项。如下:
sudo $MYSQL_HOME/bin/mysqld --user=gzx
2.9.3 用apt-get install安装过mysql服务器
必须卸载干净,比较有用的命令如下:sudo apt-get purge mysql-server-5.5
同时必须移除其他与mysql相关的配置文件。
参考博客链接:
http://yidwo.iteye.com/blog/1848547
http://blog.csdn.net/hackerwin7/article/details/2268681
http://www.codelast.com/?p=8208