一、使用 service 启动:service mysqld start 二、使用 mysqld 脚本启动:/etc/inint.d/mysqld start 三、使用 safe_mysqld 启动:safe_mysqld&php
一、使用 service 启动:service mysqld stop 二、使用 mysqld 脚本启动:/etc/inint.d/mysqld stop 三、mysqladmin shutdownhtml
一、使用 service 启动:service mysqld restart 二、使用 mysqld 脚本启动:/etc/inint.d/mysqld restartmysql
ps:实际中发现有的系统使用命令是mysql,不是mysqld;是mysqld_safe,而不是safe_mysqld。sql
mariadb的安装参见:Redhat / Centos 7 安裝 MariaDB Servershell
配置文件,好比my.cnf中 添加: [server] 或者 [mysqld] 或者 [mysqld_safe] init-file="Your file location" 重启mysqld 就能够看到效果了。windows
支持的mysql版本:5.1.x及以上 要查看当前是否已开启事件调度器,可执行以下SQL:centos
SHOW VARIABLES LIKE 'event_scheduler'; 或bash
SELECT @@event_scheduler; 或服务器
SHOW PROCESSLIST; 若显示:
+-----------------+-------+ | Variable_name | Value | +-----------------+-------+ | event_scheduler | OFF | +-----------------+-------+ 则可执行
SET GLOBAL event_scheduler = 1; 或
SET GLOBAL event_scheduler = ON; 来开启,也能够直接在启动命令加上“–event_scheduler=1”,例如:
mysqld ... --event_scheduler=1
my.ini or my.cnf 中的 [mysqld] 添加 event_scheduler=ON
mysql中DATETIME、DATE和TIMESTAMP的区别
建表加上engine=memory 配置文件中加上
<!-- lang: shell --> # 表的大小 tmp_table_size=6000M max_heap_table_size=6000M
SQLServer经过连接服务器访问MySQL。连接服务器能够选择“Microsoft OLE DB Provider for ODBC Drivers”——即经过ODBC来访问MySQL。反过来——经过MySQL访问SQLServer,尚未查到如何实现。
X64的windows系统须要安装64位版本的MySQL的ODBC驱动。32位的驱动实践发现是不行的。
若是点击“新建连接服务器”—>“其余数据源”—>“访问接口”的下拉框选项中没有“Microsoft OLE DB Provider for ODBC Drivers”的选项,那么须要安装一个驱动补丁:“WindowsServer2003.WindowsXP-KB948459-v2-x64-CHS.exe”。在windows2003实测可用。安装上以后就有那个ODBC的下拉选项了。
“数据源”填写ODBC的名字。
“访问接口字符串”内容举例:Driver={MySQL ODBC 5.3.4 Driver};Server=;Database=test;User=root;Password=5585354;Option=3;
使用“OPENQUERY”方式访问MySQL连接服务器。例如:SELECT * FROM OPENQUERY(ONLINE, 'select * from UM_ONLINE_INFO; ') ;其中OPENQUERY的两个参数分别为连接服务器名和SQL语句。
“OPENQUERY”的条件查询能够这样写:
<!-- lang: sql -->
SELECT * FROM OPENQUERY(ONLINE, 'select * from UM_ONLINE_INFO; ') WHERE USR_USER_ID = 90898;
也能够这样写 :
<!-- lang: sql --> SELECT * FROM OPENQUERY(ONLINE, 'select * from UM_ONLINE_INFO where USR_USER_ID = 90898;');
但打开执行计划会发现性能有所不一样。 一个是远程全查出来以后再作过滤;另外一个在远程查询的时候就已通过滤了。因而想把条件写到OPENQUERY的SQL语句参数中,固然要可变参数了否则还有什么意义。如:
<!-- lang: sql --> declare @user_id int set @user_id = 90898 declare @sql_smt varchar(512) set @sql_smt = 'select * from UM_ONLINE_INFO ' set @sql_smt = @sql_smt + 'where USR_USER_ID = ' set @sql_smt = @sql_smt + convert(varchar(12), @user_id) set @sql_smt = @sql_smt + ';' select @sql_smt -- select * from UM_ONLINE_INFO where USR_USER_ID = 90898; SELECT * FROM OPENQUERY(ONLINE, @sql_smt );
但SQLServer2005客户端执行报错:“'@sql_smt' 附近有语法错误。”,查询MSDN发现:“OPENQUERY does not accept variables for its arguments.”shit!why?……
可是能够这样:
<!-- lang: sql --> declare @user_id int set @user_id = 90898 declare @sql_smt varchar(512) set @sql_smt = 'select * from UM_ONLINE_INFO ' set @sql_smt = @sql_smt + 'where USR_USER_ID = ' set @sql_smt = @sql_smt + convert(varchar(12), @user_id) set @sql_smt = @sql_smt + ';' declare @whole_sql_smt varchar(768) set @whole_sql_smt = 'SELECT * FROM OPENQUERY(ONLINE, ' set @whole_sql_smt = @whole_sql_smt + '''' + @sql_smt + '''' + ');' select @sql_smt -- select * from UM_ONLINE_INFO where USR_USER_ID = 90898; select @whole_sql_smt -- SELECT * FROM OPENQUERY(ONLINE, 'select * from UM_ONLINE_INFO where USR_USER_ID = 90898;'); exec (@whole_sql_smt);
参考 这就基本OK了。
参考 第一种方式:在未链接数据库的状况下,输入 mysql -h localhost -u root -p 123456 < d:\book.sql 回车便可; 第二种方式:在已链接数据库的状况下,此时命令提示符为mysql>,输入 source d:\book.sql 或者 . d:\book.sql 回车便可。
参考 mysql> create user 'yht'@'%' identified by '12345678'; mysql> GRANT ALL PRIVILEGES ON * . * TO 'yht'@'%' IDENTIFIED BY '12345678' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
参考 mysqladmin命令(回目录) 格式以下(其中,USER为用户名,PASSWORD为新密码): mysqladmin -u USER -p password PASSWORD 该命令以后会提示输入原密码,输入正确后便可修改。 例如,设置root用户的密码为123456,则 mysqladmin -u root -p password 123456 UPDATE user 语句(回目录) 这种方式必须是先用root账户登入mysql,而后执行: UPDATE user SET password=PASSWORD('123456') WHERE user='root'; FLUSH PRIVILEGES; SET PASSWORD 语句(回目录) 这种方式也须要先用root命令登入mysql,而后执行: SET PASSWORD FOR root=PASSWORD('123456');
#设置mysql的链接通道的字符集和校验规则 使用putty链接mysql时,字符集不是utf-8,运行 SET CHARACTER SET utf8; 字符就不是乱码了。
基本步骤:
几个要注意的的点:
须要打开具备管理员权限的命令行执行上面的命令。
my.ini 中的basedir 为MySQL的安装目录。我理解就是MYSQL_HOME所在的目录(解压后有bin、include、share等文件夹的目录)。不要乱设。
更改my.ini须要重启mysql服务才能生效。
要用mysqld --initialize-insecure。不要执行mysqld --initialize。否则设置用户密码麻烦。
- mysqld --initialize-insecure自动生成无密码的root用户
- mysqld --initialize自动生成带随机密码的root用户
执行
mysqld --initialize-insecure
看是否报错
--initialize-insecure 参数前面是2个减号。一个减号不报错。但net start mysql时服务没法正常启动。
搞错了怎么办?