
因为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.gzmysql-5.5.45-linux2.6-i686.tar.gz
解压&&修改属组
tar -zxf mysql-5.5.45-linux2.6-i686.tar.gzcd 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-i686scripts/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 -poracleERROR 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不支持特殊字符 及片甲字
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)