linux下安装mysql
博客专区 > ossea 的博客 > 博客详情
linux下安装mysql
ossea 发表于3个月前
linux下安装mysql
  • 发表于 3个月前
  • 阅读 20
  • 收藏 0
  • 点赞 0
  • 评论 0

记录一次自己的安装笔记

1.下载安装包  我用的是5.5.57

 https://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.57-linux-glibc2.12-x86_64.tar.gz

2 安装依赖

yum -y install perl perl-devel autoconf libaio

 

3.检查库文件是否存在,如有删除。

[root@pdkcjt-int-zjxrpt-xrapp01 ~]# rpm -qa | grep mysql
mysql-libs-5.1.71-1.el6.x86_64
[root@pdkcjt-int-zjxrpt-xrapp01 ~]# rpm -e mysql-libs-5.1.71-1.el6.x86_64 --nodeps
[root@pdkcjt-int-zjxrpt-xrapp01 ~]# rpm -qa | grep mysql                        
[root@pdkcjt-int-zjxrpt-xrapp01 ~]#

4.检查mysql组和用户是否存在,如无创建 

[root@pdkcjt-int-zjxrpt-xrapp01 ~]# cat /etc/group | grep mysql
[root@pdkcjt-int-zjxrpt-xrapp01 ~]# cat /etc/passwd | grep mysql
[root@pdkcjt-int-zjxrpt-xrapp01 ~]# groupadd mysql
[root@pdkcjt-int-zjxrpt-xrapp01 ~]# useradd -r -g mysql mysql
[root@pdkcjt-int-zjxrpt-xrapp01 ~]# cat /etc/group | grep mysql
mysql:x:500:
[root@pdkcjt-int-zjxrpt-xrapp01 ~]# cat /etc/passwd | grep mysql
mysql:x:498:500::/home/mysql:/bin/bash
[root@pdkcjt-int-zjxrpt-xrapp01 ~]#

其中 useradd -r参数表示mysql用户是系统用户,不可用于登录系统。

5.解压TAR包,更改所属的组和用户

[root@pdkcjt-int-zjxrpt-xrapp01 ~]# cd /usr
[root@pdkcjt-int-zjxrpt-xrapp01 usr]# cd local/
[root@pdkcjt-int-zjxrpt-xrapp01 local]# cd tarlib
[root@pdkcjt-int-zjxrpt-xrapp01 tarlib]# ls
mysql-5.5.57-linux-glibc2.12-x86_64.tar.gz
[root@pdkcjt-int-zjxrpt-xrapp01 tarlib]# tar -xf mysql-5.5.57-linux-glibc2.12-x8                                 6_64.tar.gz
[root@pdkcjt-int-zjxrpt-xrapp01 tarlib]# mv mysql-5.5.57-linux-glibc2.12-x86_64 mysql                            [root@pdkcjt-int-zjxrpt-xrapp01 tarlib]# ll
总用量 193828
drwxr-xr-x. 13 root root      4096 8月  30 19:13 mysql
-rw-r--r--.  1 root root 198473055 8月  30 17:48 mysql-5.5.57-linux-glibc2.12-x86_64.tar.gz
[root@pdkcjt-int-zjxrpt-xrapp01 tarlib]# chown -R mysql:mysql mysql/
[root@pdkcjt-int-zjxrpt-xrapp01 tarlib]# cd mysql
[root@pdkcjt-int-zjxrpt-xrapp01 mysql]# cd mysql

 

6.安装和初始化数据库

[root@pdkcjt-int-zjxrpt-xrapp01 mysql]# sudo vim /etc/security/limits.conf

添加以下代码到 limits.conf

mysql hard nofile 65535

mysql soft nofile 65535

7.安装与初始化DB 

scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/

不同版本 mysql_install_db位置不一样

有的会在bin目录下

启动

[root@pdkcjt-int-zjxrpt-xrapp01 mysql]# cd bin/
[root@pdkcjt-int-zjxrpt-xrapp01 bin]# ./mysqld_safe --user=mysql &


将MySQL的控制脚本mysql.server拷贝到/etc/init.d/中。

 

[root@pdkcjt-int-zjxrpt-xrapp01 mysql]# cd bin/
[root@pdkcjt-int-zjxrpt-xrapp01 bin]# ./mysqld_safe --user=mysql &
[root@pdkcjt-int-zjxrpt-xrapp01 bin]# chmod +x /etc/init.d/mysqld

 

 

重启

[root@pdkcjt-int-zjxrpt-xrapp01 bin]# service mysqld restart
Shutting down MySQL.170831 08:34:36 mysqld_safe mysqld from pid file /usr/local/mysql/data/pdkcjt-int-zjxrpt-xrapp01.pid ended
 SUCCESS!
Starting MySQL.. SUCCESS!
[1]+  Done                    ./bin/mysqld_safe  (wd: /usr/local/mysql)
(wd now: /usr/local/mysql/bin)
[root@pdkcjt-int-zjxrpt-xrapp01 bin]#

查看端口 3306

netstat -lntp | grep 3306

[root@pdkcjt-int-zjxrpt-xrapp01 bin]# netstat -lntp | grep 3306
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      24895/mysqld
[root@pdkcjt-int-zjxrpt-xrapp01 bin]#

8.复制配置文件

cp support-files/my-medium.cnf /etc/my.cnf

注: 不同版本的support-files下面.cnf不一样

可以自己在etc/下面自己建立一个空的文件 把自己需要的配置写进去

 

9.设置开机启动

[root@pdkcjt-int-zjxrpt-xrapp01 bin]# chkconfig --level 35 mysqld on
[root@pdkcjt-int-zjxrpt-xrapp01 bin]#

 

10.测试mysql

[root@pdkcjt-int-zjxrpt-xrapp01 mysql]# /usr/local/mysql/bin/mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.5.57 MySQL Community Server (GPL)

Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

 

连接成功 路径太长  配置一下mysql的环境变量

11.环境变量

在/etc/profile最后加入两行命令:

[root@pdkcjt-int-zjxrpt-xrapp01 etc]# vim profile




MYSQL_HOME=/usr/local/mysql

export PATH=$PATH:$MYSQL_HOME/bin
"profile" 81L, 1859C 

使用命令 使profile文件生效

[root@pdkcjt-int-zjxrpt-xrapp01 etc]# source /etc/profile

 

12修改密码

 

[root@pdkcjt-int-zjxrpt-xrapp01 etc]# mysql -u root
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.5.57 MySQL Community Server (GPL)

Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> use mysql;
Database changed
mysql> update user set password=password('123456') where user='root';
Query OK, 4 rows affected (0.00 sec)
Rows matched: 4  Changed: 4  Warnings: 0

mysql>

 

13.添加远程访问权限

use mysql;


mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION ;
Query OK, 0 rows affected (0.00 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

注意 这里这句话有可能会新生成一条记录  装了好几次 都会莫名秒多出来一条 root记录为空的记录

删掉之后可以用户名和密码登录

注意这个生成的密码 可能也是空的  这样就导致你链接的时候用密码链接 打死也连接不上的效果

如果链接不上 尝试用一下修改密码!!!

 

还有一种是直接用sql语句更改权限 也很简单  但是忘记了操作步骤 这里就不重复了

update user set host = '%' where user = 'root';

如果主键冲突 可以删掉一样的数据

//重启生效 /etc/init.d/mysqld restart

flush privileges;

14. 修改字符集

在mysqld 下面添加以下内容

vim /etc/my.cnf 

[mysqld]
character-set-server=utf8

# 不区分大小写
lower_case_table_names=1

 

15.卸载mysql  没有测试

# 1. 停止服务
/etc/init.d/mysqld stop

# 2. 停止并删除开机启动
chkconfig mysqld off
chkconfig --del mysqld

# 3. 删除MySQL目录
rm -rf /usr/local/mysql
rm -f /etc/my.cnf
rm -f /etc/init.d/mysqld
rm -f /root/.mysql_secret

# 4. 删除用户和用户组
userdel -r mysql

 

16.远程访问 mysql

1.开放3306端口

网上各种坑的 多数符号不对  建议直接复制22的 然后修改成3306

 vi /etc/sysconfig/iptables
 
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT



[root@pdkcjt-int-zjxrpt-xrapp01 ~]# service iptables restart
iptables:将链设置为政策 ACCEPT:filter                    [确定]
iptables:清除防火墙规则:                                 [确定]
iptables:正在卸载模块:                                   [确定]
iptables:应用防火墙规则:                                 [确定]
[root@pdkcjt-int-zjxrpt-xrapp01 ~]# service iptables save
iptables:将防火墙规则保存到 /etc/sysconfig/iptables:     [确定]

本地 cmd 端口  telnet ipd地址 3306

如果没有拒绝 就是开通端口成功

 

my.cnf  详细配置

http://www.cnblogs.com/captain_jack/archive/2010/10/12/1848496.html

 

 

总结  此文不是按照一个博文写出来的

是结合多个博文

ubantu安装比较简单  几行命令

不同版本的mysql 文件位置不一样 如果按照

 

问题记录:

ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'

我遇到的原因 是在 mysql数据库中的user表 里面多了两个用户名为'' 空的记录 每次用root登录时实际上用了匿名登录

删掉即可

1.关闭mysql
   # service mysqld stop
2.屏蔽权限
   # mysqld_safe --skip-grant-table
   屏幕出现: Starting demo from .....
3.新开起一个终端输入
   # mysql -u root mysql
   mysql> delete from user where USER='';
   mysql> FLUSH PRIVILEGES;//记得要这句话,否则如果关闭先前的终端,又会出现原来的错误
   mysql> \q

 

 

 

 

共有 人打赏支持
粉丝 0
博文 17
码字总数 9673
×
ossea
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: