Linux下安装mysql

来源:互联网 发布:js 视频播放插件 编辑:程序博客网 时间:2024/06/08 06:28

1、到mysql官网下载mysql编译好的二进制安装包,在下载页面Select Platform:选项选择linux-generic,然后把页面拉到底部,64位系统下载Linux - Generic (glibc 2.5) (x86, 64-bit),32位系统下载Linux - Generic (glibc 2.5) (x86, 32-bit)

2、解压64位安装包:
进入安装包所在目录,执行命令:

tar -zxvf mysql-5.6.38-linux-glibc2.12-x86_64.tar.gz

3、复制解压后的mysql目录到系统的本地软件目录:
执行命令
cp mysql-5.6.38-linux-glibc2.12-x86_64 /usr/local/mysql -r
注意:目录结尾不要加/

这里写图片描述

4、添加系统mysql组和mysql用户:
执行命令:groupadd mysql和useradd -r -g mysql mysql

这里写图片描述

5、 安装数据库:
进入安装mysql软件目录:执行命令 cd /usr/local/mysql

修改当前目录拥有者为mysql用户:执行命令 chown -R mysql:mysql ./

安装数据库:执行命令 ./scripts/mysql_install_db –user=mysql

修改当前目录拥有者为root用户:执行命令 chown -R root:root ./

修改当前data目录拥有者为mysql用户:执行命令 chown -R mysql:mysql data

到此数据库安装完毕

6、启动mysql服务和添加开机启动mysql服务:
添加开机启动:执行命令cp support-files/mysql.server /etc/init.d/mysql,把启动脚本放到开机初始化目录

启动mysql服务:执行命令service mysql start

执行命令:ps -ef|grep mysql 看到mysql服务说明启动成功,如图

这里写图片描述

7、 修改mysql的root用户密码,root初始密码为空的:
执行命令:./bin/mysqladmin -u root password ‘密码’

8、把mysql客户端放到默认路径:
ln -s /usr/local/mysql/bin/mysql /usr/local/bin/mysql

9、登陆
mysql -u root -h 127.0.0.1 -p
密码为第七步设置的密码

注意:建议使用软链过去,不要直接包文件复制,便于系统安装多个版本的mysql

以上更详细的内容地址:http://jingyan.baidu.com/article/a378c9609eb652b3282830fd.html

注意问题:

自我感觉mysql 5.7这一系列的版本都很变态啊,不管是windows的还是Linux,安装的时候总会出些莫名其妙的想法。当初在windows下安装mysql的时候,年轻不懂事下了5.7版本的,结果出现了各种难以捉摸的bug,在网上查也找不到,最后发现一个同病相怜的人诉说是版本问题,装成5.6就好了。而这次装linux的,年少轻狂的我忘记了windows下的教训,装了5.7,结果一直出现各种bug,哎,还是太年轻了。希望大家能吸取教训吧。

9.安装完后的使用

安装完以后,大家可以输入mysql -uroot -p,然后enter password来进入mysql。

进去后可以使用mysql的各种语法,首先可以查看database:show databases。

Linux下mysql的卸载:

1、查找以前是否装有mysql

命令:rpm -qa|grep -i mysql

可以看到mysql的两个包:

mysql-4.1.12-3.RHEL4.1

mysqlclient10-3.23.58-4.RHEL4.1

2、删除mysql

删除命令:rpm -e –nodeps 包名

( rpm -ev mysql-4.1.12-3.RHEL4.1 )

3、删除老版本mysql的开发头文件和库

检查各个mysql文件夹是否删除干净

find / -name mysql

结果如下:

/var/lib/mysql

/usr/local/mysql

/usr/lib/mysql

/usr/include/mysql

命令:

rm -fr /usr/lib/mysql

rm -fr /usr/include/mysql

注意:卸载后/var/lib/mysql中的数据及/etc/my.cnf不会删除,如果确定没用后就手工删除

rm -f /etc/my.cnf

rm -fr /var/lib/mysql

4.删除mysql用户及用户组

userdel mysql

groupdel mysql

Linux下创建和删除软链接:

1.先建立一个软连接

[root@rekfan.com test]# ls -il总计  01491138 -rw-rr– 1 root root 48 07-14 14:17 file11491139 -rw-rr– 2  root root 0 07-14 14:17 file21491139 -rw-rr– 2 root root 0 07-14 14:17  file2hand#建立file1file1soft软连接[root@rekfan.com test]# ln -s file1  file1soft[root@rekfan.com test]# ls -il总计 01491138 -rw-rr– 1 root  root 48 07-14 14:17 file11491140 lrwxrwxrwx 1 root root 5 07-14 14:24  file1soft -> file11491139 -rw-rr– 2 root root 0 07-14 14:17  file21491139 -rw-rr– 2 root root 0 07-14 14:17 file2hand

其中,ln -s file1 filesoft 中的file1就是源文件,file1soft就是目标链接文件名,其作用是当进入filesoft目录,实际上是链接进入了file1目录

2.删除上面建立的软连接

[root@rekfan.com test]# ls -il总计  01491138 -rw-rr– 1 root root 0 07-14 14:17 file11491140 lrwxrwxrwx 1  root root 5 07-14 14:24 file1soft -> file11491139 -rw-rr– 2 root root 0  07-14 14:17 file21491139 -rw-rr– 2 root root 0 07-14 14:17  file2hand#删除软连接[root@rekfan.com test]# rm -rf file1soft[root@rekfan.com test]#  ls -il总计 01491138 -rw-rr– 1 root root 0 07-14 14:17 file11491139  -rw-rr– 2 root root 0 07-14 14:17 file21491139 -rw-rr– 2 root root 0 07-14  14:17 file2hand

启动mysql时显示:/tmp/mysql.sock 不存在的解决方法

[root@localhost mysql]# bin/mysqladmin -u root password rootbin/mysqladmin: connect to server at 'localhost' failederror: 'Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)'Check that mysqld is running and that the socket: '/tmp/mysql.sock' exists![root@localhost mysql]# bin/mysql -u root -pEnter password:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)分析:是/tmp/mysql.sock 不存在

由于搜索的mysql.sock路径是在/tmp下,而mysql安装的mysql.sock在/var/lib/mysql下,所以选择建立符号(软)连接:

# ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock# bin/mysql -u rootWelcome to the MySQL monitor. Commands end with ; or g.Your MySQL connection id is 1Server version: 5.0.45 MySQL Community Server (GPL)Type 'help;' or 'h' for help. Type 'c' to clear the buffer.mysql>

我自己实践时遇到的问题记录:
1、

 [ERROR] Can't start server : Bind on unix socket: Address already in use [ERROR] Do you already have another mysqld server running on socket: /tmp/mysql.sock ?

1)用ps -ef|grep mysql检查没有其它mysql进程,用netstat -an|grep 3306检查端口,有进程的话,杀掉进程。
2)对比分析,正常关闭mysql时,/tmp/mysql3306.sock文件是不存在的,而现在mysql已关闭后,还存在/tmp/mysql3306.sock文件。
猜测是由于上次mysql未正常关闭或关闭异常引起。
问题解决:
在root用户下,删除/tmp/mysql3306.sock文件,再重启mysql。
2、登录mysql出现/var/lib/mysql/mysql.sock不存在
问题描述:
1.mysql安装完成后,使用
service mysqld start
总是出现 start failed。
2.使用mysql -uroot -p登录出现找不到 /var/lib/mysql/mysql.sock问题。
3.使用service mysqld status出现 mysql dead but subsys locked(暂时还没有出现这个问题)

解决方法:
1 service mysqld stop (停止服务)
2 rm -fr /var/lib/mysql/* (删除/var/lib/mysql下的所有文件)
3 rm /var/lock/subsys/mysqld(删除锁定文件)
4 killall mysqld (杀死所有mysqld进程)
5 service mysql start (启动mysql服务。)

3、用tar源码安装mysql5.6.33没有成生my.cnf文件,只有在mysql根目录下生成了一个默认的文件

# For advice on how to change settings please see# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html[mysqld]# Remove leading # and set to the amount of RAM for the most important data# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.# innodb_buffer_pool_size = 128M# Remove leading # to turn on a very important data integrity option: logging# changes to the binary log between backups.# log_bin# These are commonly set, remove the # and set as required.# basedir = .....# datadir = .....# port = .....# server_id = .....# socket = .....# Remove leading # to set options mainly useful for reporting servers.# The server defaults are faster for transactions and fast SELECTs.# Adjust sizes as needed, experiment to find the optimal values.# join_buffer_size = 128M# sort_buffer_size = 2M# read_rnd_buffer_size = 2M sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 

解决方法:
复制已有my.cnf文件,直接将另一台服务器的my.cnf文件cp过来使用,修改相关位置信息即可。

[mysqld]default-character-set=utf8datadir=/var/lib/mysqlsocket=/var/lib/mysql/mysql.sockuser=mysqlinnodb_buffer_pool_size=314572800set-variable = max_connections=10000# Disabling symbolic-links is recommended to prevent assorted security riskssymbolic-links=0lower_case_table_names = 1[mysqld_safe]log-error=/var/log/mysqld.logpid-file=/var/run/mysqld/mysqld.pidcharacter-set-server=utf8[client]default-character-set=utf8[mysql]default-character-set=utf8

转载自:
http://www.cnblogs.com/fnlingnzb-learner/p/5830622.html
http://blog.csdn.net/zengxuewen2045/article/details/52333382
http://www.cnblogs.com/okstill/p/5667138.html

原创粉丝点击