Linux安装mysql mysql5.5.40 <NIOT>
一、 操作系统与软件
操作系统及版本 |
Centos 6.4 |
依赖包 |
gcc、gcc-c++、cmake、ncurses-devel |
下载目录 |
/opt |
Mysql安装目录 |
/usr/local/mysql/ |
二、 准备工作
操作系统 |
Centos |
Ubuntu |
安装cmake |
yum install cmake |
sudo apt-get install cmake |
安装bison |
yum install bison |
sudo apt-get install bison |
安装gcc |
yum install -y gcc |
sudo apt-get install gcc |
安装gcc-c++ |
yum install -y gcc-c++ |
sudo apt-get install gcc-c++ |
安装ncurses-devel |
yum install ncurses-devel |
sudo apt-get install ncurses-devel |
说明:(mysql5.5以后是通过cmake来编译的)
三、 服务安装步骤
根据服务所需安装包的先后顺序,分步骤填写下表,操作步骤主要包括:
a.软件包安装与编译 b.配置文件修改 c. 权限设置
d.初始化数据库 e.启动与停止命令 f.验证服务正常
g.开机自动启动 h.环境变量配置 i.结束进程与启动
步骤a |
软件包安装与编译 |
安装目录 |
/opt |
安装步骤 |
wget http://cdn.mysql.com/Downloads/MySQL-5.5/mysql-5.5.40.tar.gz
tar zxvf mysql-5.5.40.tar.gz
cd /opt/mysql-5.5.40
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql/ -DMYSQL_DATADIR=/opt/mysql/data/ -DMYSQL_UNIX_ADDR=/tmp/mysqld.sock -DWITH_INNOBASE_STORAGE_ENGINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_TCP_PORT=3306 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DMYSQL_USER=mysql -DWITH_DEBUG=0 -DSYSCONFDIR=/etc 5.说明:成功安装标记如下 CMake Warning: Manually-specified variables were not used by the project: MYSQL_USER -- Build files have been written to: /opt/mysql-5.5.40 6.make 7.make install |
步骤b |
配置文件修改 |
安装步骤 |
1、安装好mysql后第一步是创建全局配置文件 my.cnf 并调整相关参数,如端口、数据文件路径、缓存大小等: sudo cp support-files/my-medium.cnf /etc/my.cnf 2、创建mysql启动、停止管理脚本: sudo cp support-files/mysql.server /etc/init.d/mysqld 【注:cp support-files/mysql.server /etc/init.d/mysqld 这样更好,后面对应修改】 |
步骤3 |
权限设置 |
安装步骤 |
chmod 755 /etc/init.d/mysqld |
步骤4 |
初始化数据库 |
目录 |
/opt/mysql-5.5.40 |
配置步骤 |
1. groupadd mysql 2. useradd -g mysql mysql 3. sh ./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/opt/mysql/data/
注:#basedir mysql安装路径 datadir 数据库文件储存路径 4.说明,安装成功标记: Installing MySQL system tables... OK Filling help tables... OK |
步骤5 |
启动与停止命令 |
安装目录 |
/opt/mysql-5.5.40 |
配置步骤 |
1、启动与停止命令 /etc/init.d/mysqld start /etc/init.d/mysqld stop /etc/init.d/mysqld restart 重启
|
步骤6 |
验证服务正常 |
命令 |
1、进入安装目录 cd /usr/local/mysql/bin 2、连接登陆 ./mysql -u root –p 密码为空 3.修改密码 use mysql; update user set password=password('admin') where user='root'; 这步就更新了密码 第三步: flush privileges;刷新权限. quit 4.建立软连接 ln -s /usr/local/mysql/bin/mysql /usr/bin 5.mysql -u root -p 输入密码即可
pstree 是否有mysqld_safe ,有,代表OK,成功 ★-----------------------------------------★ |
步骤7 |
开机自动启动 |
命令 |
完整步骤: 1、support-files/mysql.server /etc/init.d/mysqld 2、chmod 755 /etc/init.d/mysqld 3、chkconfig mysqld on 根据前面的配置,这一步实际只需输入chkconfig mysqld on即可 |
步骤8 |
环境变量配置 |
配置内容 |
为了方便,将mysql 的bin目录加到PATH中,在/etc/profile中加入myslq/bin,顺便增加两个别名方便操作: export PATH=/usr/local/mysql/bin:$PATH 开关客户端 alias mysql_start="mysqld_safe&" alias mysql_stop="mysqladmin -uroot -p shutdown" |
步骤9 |
结束进程与启动 |
命令 |
pstree -p
Kill -9 进程pid号 【注:要先kill 守护进程,再kill进程。如果直接kill进程,mysql进程会自动生成新的进程】
/etc/init.d/mysqld start |
四、 常见错误解决
1、ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
解决方案:服务没启动 /etc/init.d/mysqld start
2、在整个安装过程中,cmake安装不成功,就是缺少必要的最前面的依赖包,如果全部安装了,还cmake安装不成功。
就rm –rf mysql解压的那个包,重新编译安装cmake一遍,即可。
3、输入mysql –u root –p 如果提示-bash: mysql: command not found
解决:这是由于系统默认会查找/usr/bin下的命令,建立软连接即可
ln -s /usr/local/mysql/bin/mysql /usr/bin
五、 参考资料与网址
- http://www.cnblogs.com/bluewelkin/p/4233459.html
- http://www.linuxidc.com/Linux/2011-04/35268.htm
- http://www.itpub.net/forum.php?mod=viewthread&tid=1811682&highlight=
------------------------------------------------------
通过如上配置,学会了:
1、mysql -u root -p =====================命令默认位置在/usr/bin下 建立软连接即可
2、守护进程的作用,kill掉子进程也没事,自动生成新的。
3、mysql忘记密码也没事 http://www.cnblogs.com/bluewelkin/p/3902518.html
在mysql的全局配置中加入一句话即可skip-grant-tables
4、环境变量开启别名模式
5、[root@IOT-WXUNI-Comm-A etc]# /home/wkubuntu/named/sbin/named: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory 【出现这个错误,20150320】
解决方案:20150425
http://www.cnblogs.com/bluewelkin/p/4353152.html
6、mysql的报错日志 看配置文件 /etc/my.cnf 看知
7、[root@iZ25pktdyflZ mysql-5.5.40]# /etc/init.d/mysqld start
Starting MySQL..The server quit without updating PID file ([FAILED]/mysql/iZ25pktdyflZ.pid).
解决方案【2015年0512】
就是路径的问题: 再次在命令行输入即可 sh ./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/var/lib/mysql【最后这个datadir这个地方修改为和/etc/my.cnf一样】
成功解决
[Mysql 报错信息路径 /var/log/mysqld.log]
解决方案二:【没有这个文件,建立这个文件】
[root@iZ25pl8wzd7Z mysql-5.5.40]# /etc/init.d/mysqld start
Starting MySQL.The server quit without updating PID file (/home/wkubuntu/mysql/data/iZ25pl8wzd7Z.pid). [FAILED]
这个错误的解决方案如下
sh ./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/home/wkubuntu/mysql/data
8、忘记mysql密码,修改MySQL的登录设置:
# vi /etc/my.cnf
在[mysqld]的段中加上一句:skip-grant-tables
例如:
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
skip-name-resolve
skip-grant-tables
保存并且退出vi。
2.重新启动mysqld
# /etc/init.d/mysqld restart
Stopping MySQL: [ OK ]
Starting MySQL: [ OK ]
3.登录并修改MySQL的root密码 mysql -uroot -p 密码为空
4、再把my.cnf去掉那一句
9、北京服务器
/home/niot/mysql/bin/mysql -u root -p
/home/niot/mysql/bin/mysqld_safe --pid-file=/home/niot/mysql/mysql.pid --user=niot --datadir=/home/niot/mysql/data &
sudo /home/niot/named/sbin/named -c /home/niot/named/etc/named.conf -n 1 &
mysql 进程 ps -ef|grep mysql
/usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/ --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/home/mysql/data/NIOT-SVR2.err --pid-file=/home/mysql/data/NIOT-SVR2.pid --socket=/tmp/mysql.sock --port=3306