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
总计 0
1491138 -rw-r–r– 1 root root 48 07-14 14:17 file1
1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2
1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2hand
#建立file1和file1soft软连接
[root@rekfan.com test]# ln -s file1 file1soft
[root@rekfan.com test]# ls -il
总计 0
1491138 -rw-r–r– 1 root root 48 07-14 14:17 file1
1491140 lrwxrwxrwx 1 root root 5 07-14 14:24 file1soft -> file1
1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2
1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2hand
其中,ln -s file1 filesoft 中的file1就是源文件,file1soft就是目标链接文件名,其作用是当进入filesoft目录,实际上是链接进入了file1目录
2.删除上面建立的软连接
[root@rekfan.com test]# ls -il
总计 0
1491138 -rw-r–r– 1 root root 0 07-14 14:17 file1
1491140 lrwxrwxrwx 1 root root 5 07-14 14:24 file1soft -> file1
1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2
1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2hand
#删除软连接
[root@rekfan.com test]# rm -rf file1soft
[root@rekfan.com test]# ls -il
总计 0
1491138 -rw-r–r– 1 root root 0 07-14 14:17 file1
1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2
1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2hand
启动mysql时显示:/tmp/mysql.sock 不存在的解决方法
[root@localhost mysql]# bin/mysqladmin -u root password root
bin/mysqladmin: connect to server at 'localhost' failed
error: '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 -p
Enter 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 root
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 1
Server 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=utf8
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
innodb_buffer_pool_size=314572800
set-variable = max_connections=10000
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
lower_case_table_names = 1
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
character-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