linux下 安装mysql 问题

linux下 安装mysql 问题,第1张

因为mysql程序在启动的时候  非常依赖my.cnf里面的配置,而my.cnf文件中的配置,在执行mysql初始化的时候就可以手动指定

如果mysql不是使用yum安装,而是将mysql安装到自定义的目录下时,在启动mysql、连接mysql的时候 都要指定my.cnf文件。或者 将my.cnf文件放到/etc下(这是因为mysql寻找my.cnf文件时首先会从/etc/my.cnf开始,然后/etc/mysql/my.cnf--》/usr/local/mysql/etc/my.cnf--》~/.my.cnf---》最后是自定义路径

下面是我自己在linux上安装了一遍的过程,你可以参考一下。

软件包

[root@hilodbtool soft]# ls mysql-5.5.45-linux2.6-i686.tar.gz 

mysql-5.5.45-linux2.6-i686.tar.gz

解压&&修改属组

tar -zxf mysql-5.5.45-linux2.6-i686.tar.gz 

cd mysql-5.5.45-linux2.6-i686

chown -R mysql.mysql ./*

[root@hilodbtool mysql-5.5.45-linux2.6-i686]# ls

bin  COPYING  data  docs  include  INSTALL-BINARY  lib  man  mysql-test  README  scripts  share  sql-bench  support-files

关于手动创建my.cnf

因为mysql程序在启动的时候十分依赖my.cnf文件,目前我的本机上已经安装了一个mysql,ect/my.cnf已经存在,所以手动创建一个my.cnf作为新建mysql的cnf文件

mkdir -p /hilodb/soft/mysql

mkdir -p /var/run/mysqld

chown -R mysql.mysql /hilodb/soft/mysql

chown -R mysql.mysql /var/run/mysqld

cat >/tmp/my.cnf <<EOF

[mysqld]

basedir=/hilodb/soft/mysql-5.5.45-linux2.6-i686

datadir=/hilodb/soft/mysql

socket=/hilodb/soft/mysql/mysql.sock

user=mysql

symbolic-links=0

[mysqld_safe]

log-error=/var/log/mysqld.log

pid-file=/hilodb/soft/mysql/mysqld.pid

socket=/hilodb/soft/mysql/mysql.sock

[mysql]

socket=/hilodb/soft/mysql/mysql.sock

[client]

port= 3306

socket= /hilodb/soft/mysql/mysql.sock

EOF

初始化数据库

cd mysql-5.5.45-linux2.6-i686

scripts/mysql_install_db --user=mysql --defaults-file=/tmp/my.cnf

centos6.8 64bit环境下启动的时候报

[root@hilodbtool bin]# ./mysqld_safe --help

./mysqld_safe: ./my_print_defaults: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory

./mysqld_safe: ./my_print_defaults: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory

处理上面的报错

yum install glibc.i686

yum install libgcc.i686

yum install libaio*.i686*

yum install ncurses-*.i686*

启动数据库

cd /hilodb/soft/mysql-5.5.45-linux2.6-i686/bin

./mysqld_safe --defaults-file=/tmp/my.cnf --ledir=/hilodb/soft/mysql-5.5.45-linux2.6-i686/bin/ &

进入数据库

cd /hilodb/soft/mysql-5.5.45-linux2.6-i686/bin

./mysql --defaults-file=/tmp/my.cnf

修改root密码

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('oracle')

flush privileges

***************登录报错 ###也就是处理socket的问题 ***************

[root@hilodbtool bin]# mysql -uroot -poracle 

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

登录报错 

两种解决方法

第一种

ln -s /hilodb/soft/mysql/mysql.sock /tmp/mysql.sock  

第二种

因为mysql程序搜索my.cnf的顺序

/etc/my.cnf

/etc/mysql/my.cnf

/usr/local/mysql/etc/my.cnf

~/.my.cnf

其他自定义路径下的my.cnf,例如:/data/mysql/yejr_3306/my.cnf

所以替换/etc/my.cnf 

cp /tmp/my.cnf /etc/

cp: overwrite `/etc/my.cnf'? y

rm -rf /tmp/mysql.sock

再次登录成功

mysql -uroot -poracle

mysql>

修改环境变量

将一下内容 添加到 /etc/profie 最后

export PATH=/hilodb/soft/mysql-5.5.45-linux2.6-i686/bin:$PATH

然后在终端执行 source /etc/profile 使环境变量生效

which mysql

[root@hilodbtool ~]# which mysql

/hilodb/soft/mysql-5.5.45-linux2.6-i686/bin/mysql

登录测试

LZ 实际做项目的时候 都要直连 从网上找找 那三个直连包吧

代码如下:

package com.bl.db

import java.sql.DriverManager

import java.sql.SQLException

import com.blog.port.*

import java.sql.*

public class DBTool implements IDBTool {

Connection conn

public Connection getConn(){

try {

DriverManager.registerDriver(new com.microsoft.jdbc.sqlserver.SQLServerDriver())

conn = DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433databasename=Data","sa","")

} catch (SQLException e) {

// TODO 自动生成 catch 块

e.printStackTrace()

}

return conn

}

public void Close(ResultSet rs,PreparedStatement pst,Connection conn){

try {

if(rs!=null){

rs.close()

}

if(pst!=null){

pst.close()

}

if(conn!=null){

conn.close()

}

} catch (SQLException e) {

e.printStackTrace()

}

}

}

我采用的是 分层模式

mysql_query("set character set 'GB2312'") //设置字节集编码

你找到你读取数据库函数的这条 没有的话增加一条

数据库是UFT-8 你应该豪不留情的用UTF-8 不然icnov不支持特殊字符 及片甲字


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/7649450.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-08
下一篇2023-04-08

发表评论

登录后才能评论

评论列表(0条)

    保存