linux_mysql安装

历史版本: https://downloads.mysql.com/archives/community/

mysql安装准备:

  1. 加大虚拟机内存,1~2G,编译时候更快

  2. 提前下好软件

  3. 重视操作过程报错输出

  4. 进入虚拟机中make 和 make install , 以免前功尽弃

如何安装?

  1. 创建mysql用户

useradd mysql -s /sbin/nologin -M

id mysql         # 检查

  2. 下载

    版本选择:

    # mysql 5.5            占用60%     

    # 5.5下载地址:https://cdn.mysql.com//Downloads/MySQL-5.5/mysql-5.5.58.tar.gz

    # mysql 5.6+          占用20%

    # 5.6下载地址: https://cdn.mysql.com//Downloads/MySQL-5.6/mysql-5.6.38.tar.gz

    # 5.1下载地址: https://cdn.mysql.com/archives/mysql-5.1/mysql-5.1.72.tar.gz

    选择5.5版本

    统一下载到家目录下 tools目录中

cd ~/tools

wget https://cdn.mysql.com//Downloads/MySQL-5.6/mysql-5.6.38.tar.gz

tar -xf mysql-5.5.tar.gz            # 解压
cd mysql-5.5                           # 进入解压源码目录
yum install -y cmake ncurses-devel gcc-c++ openssl-devel ncurses-devel                   
# 这5.5 和5.6两个版本需要通过cmake进行安装,并安装相关依赖
# 可以通过 make -j 4,-j指定cpu的核数,加快编译过程,如果使用不当还会减慢安装速度

  安装5.5相关参数:

cmake . \

-DCMAKE_INSTALL_PREFIX=/application/mysql-5.5.58 \

-DMYSQL_DATADIR=/application/mysql-5.5.58/data \

-DMYSQL_UNIX_ADDR=/application/mysql-5.5.58/mysql.sock \

-DEXTRA_CHARSETS=gbk,gb2312,utf8,ascii \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DWITH_FEDERATED_STORAGE_ENGINE=1 \

-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \

-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \

-DWITHOUT_PARTITION_STORAGE_ENGINE=1 \

-DWITH_SSL=yes \

-DENABLED_LOCAL_INFILE=1 \

-DWITH_ZLIB=bundled \

-DWITH_READLINE=1

# 生产环境确定字符集为utf-8,那就添加这两句

# -DDEFAULT_CHARSET=utf8 \

# -DDEFAULT_COLLATION=utf8_general_ci \

  3. 编译并安装

make && make install

  4.  创建软链接

ln -s mysql-5.5.58/ mysql     # 做一个软链接

# 假如数据库没有和web服务放在一起,配置到此结束,和web服务放在一起,继续往下配置

  5. 选择配置文件

cd到 原码文件目录下, ll support-files/ | grep "my.*.cnf$"  # 有5个初始配置模板
# # 这5个文件,应用场景不同,对应级别硬件配置,硬件配置越高,选择默认模版越大 虚拟机使用 my-small.cnf: cp support-files/my-small.cnf /etc/my.cnf # 把这个配置文件拷贝到/etc目录下,覆盖

  6. 创建放数据库数据文件目录

mkdir /application/mysql/data -p      

# 创建data存放数据的目录,实质上编译的时候,就指定了目录,会创建一个数据目录

   7. 授权mysql用户管理

chown -R mysql.mysql /application/mysql/

# 授权mysql安装目录给mysql用户管理,注意后面的 / 没有斜杠单独这个软链接授权,加上这个斜杠表示该目录和目录下所有内容授权

  8. 初始化数据库

/application/mysql/scripts/mysql_install_db --basedir=/application/mysql --datadir=/application/mysql/data/ --user=mysql

# 初始化数据库,将会在 /application/mysql/data/ 目录生成mysql库和performance_schema配置库
# --basedir 安装目录
# --datadir 存放数据目录
# --user 服务运行用户

 

  9. 配置mysql数据库服务启动脚本

# 从源码文件中的support-files/目录下,拷贝mysql启动脚本mysql.server到/etc/init.d/目录下

cp support-files/mysql.server /etc/init.d/mysqld

# 拷贝到  /etc/init.d/ 启动目录下,然后就可以通过  /etc/init.d/mysqld start启动数据库

vim /etc/init.d/mysqld 	
# 编辑这个脚本,更改以下两个参数
    basedir=/application/mysql/    # 指定安装路径
    datadir=/application/mysql/data/    # 指定数据路径

chkconfig --add mysqld
    # 添加到 chkconfig 管理

chmod u+x /etc/init.d/mysqld
    # 授权,执行权

chkconfig mysqld on
    # 让其开机自启动

  10. 启动msyql服务 

/etc/init.d/mysqld start

如何直接输入mysql进入mysql数据库?

       常规启动 /application/mysql/bin/mysql, 全路径启动

  1. 把mysql命令添加到环境变量中

vim /etc/profile      # 最后一行加入一行:
export PATH="/application/mysql/bin/:$PATH"
. /etc/profile           # 让修改生效
# echo 'export PATH="/application/mysql/bin/:$PATH"' >> /etc/profile

启动数据库出现的错误:

  ERROR! MySQL server PID file could not be found!

  原因可能是:启动脚本中有两个参数未指定

vim /etc/init.d/mysqld          # 编辑这个脚本,指定两个路径,
        basedir=/application/mysql/                    # 指定安装路径
   datadir=/application/mysql/data              # 指定数据路径
# 如果修改了这两个参数,还是报这个错误,直接删除 /data 数据目录,重新做数据库初始化,也就是重新执行 mysql_install_db 命令,然后提示有两种启动方式,两者不要混用,不然就会报这个错误

  2. ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/application/mysql-5.5.58/mysql.sock' (2)

    原因: /etc/my.cnf 配置文件问题

    解决方法:

             从源码文件中把 my-small.cnf 文件拷贝覆盖掉 my.cnf文件

  3. Starting MySQL.. ERROR! The server quit without updating PID file (/application/mysql/data//db01.pid)

    这个问题是无法创建 PID file ,也就是数据没有权限,那么需要把msyql这个安装目录全部授权给msyql用户管理

  4.  171215 22:35:46 mysqld_safe mysqld from pid file /application/mysql/data/web01.pid ended

    这个问题的原因是:

      没有把安装目录授权给mysql用户,当我授权的时候,只是给对应的软链接进行了mysql用户授权

      命令后少了个斜杠,毕竟软链接也是文件,没有授权通过mysql_install_db并不能创建msyql.sock文件,所以启动服务失败

              如何解决?

                     ll /application/mysql/                 # 检查软件授权情况,看主和组是否是mysql

                     chown -R mysql:mysql /application/mysql/            # 特别注意软链接后面那个斜杠

安装初始化的数据库默认没有密码,可以直接执行mysql命令执行,那如何给初始化密码?

mysqladmin -u root password 'password'        # 设置密码
mysql -u root -p                                       # 输入密码直接进入,显示公开的数据信息

对数据库设置了密码,还需要进行哪些操作?

select user,host from mysql.user                    
    #查看用户信息把空白信息删除掉
drop user ""@localhost;                  
drop user ""@web01; 
    #这两行空参数,要适合指定的机器,不同机器两行参数名字不一样
select user,host from mysql.user;         
    # 检查
drop database test;               
    # 删除test测试数据库,这个数据库不安全

如何查看数据库相关信息?

select version();           # 查看当前版本
select user();                # 查看当前用户
select user, host from mysql.user # 查看用户信息,需要把空的删掉

 

posted @ 2017-12-26 15:18  梦_鱼  阅读(167)  评论(0编辑  收藏  举报